dp(相对大小) 和 px(像素)之间的相互转换

简介: dp(相对大小) 和 px(像素)之间的相互转换

dp

dp:安卓中的相对大小,dp就是为了使得开发者设置的长度能够根据不同屏幕的分辨率获得不同的像素(px)数量

(比如:将一个控件设置长度为10dp,那么在160dpi上该控件长度为10px,在320dpi的屏幕上该控件的长度为320/160*10=20个像素点。也就是说dp会随着不同屏幕而改变控件长度的像素数量。)

px

px:像素点,平常所说的手机分辨率1080×1920只是像素数量,也就是1920px × 1080px,代表手机高度有1920个像素点,宽度有1080个像素点。

转换代码

package com.gaojc.util;

import android.content.Context;

/**
 * dp转px | px转dp
 */
public class DensityUtil {
    /**
     * 根据手机的分辨率从 dp(相对大小) 的单位 转成为 px(像素)
     */
    public static int dpToPx(Context context, float dpValue) {
        // 获取屏幕密度
        final float scale = context.getResources().getDisplayMetrics().density;
        // 结果+0.5是为了int取整时更接近
        return (int) (dpValue * scale + 0.5f);
    }

    /**
     * 根据手机的分辨率从 px(像素) 的单位 转成为 dp(相对大小)
     */
    public static int pxToDp(Context context, float pxValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }
}
目录
相关文章
RGB颜色和16进制颜色转换太麻烦,使用SwiftUI搭建一个颜色值转换App(下)
RGB颜色和16进制颜色转换太麻烦,使用SwiftUI搭建一个颜色值转换App(下)
180 0
|
存储
RGB颜色和16进制颜色转换太麻烦,使用SwiftUI搭建一个颜色值转换App(上)
RGB颜色和16进制颜色转换太麻烦,使用SwiftUI搭建一个颜色值转换App(上)
113 0
LeetCode 1637. 两点之间不包含任何点的最宽垂直面积
给你 n 个二维平面上的点 points ,其中 points[i] = [xi, yi] ,请你返回两点之间内部不包含任何点的 最宽垂直面积 的宽度。
89 0
|
Java
java实现颜色Color对象和16进制之间的转换
package com.tsxs.test; import java.awt.Color; public class TestColor { public static void main(String[] args) { System.out.println(toHexFromColor(Color.BLUE)); System.out.println(toColorFro
5326 0
|
算法 前端开发 JavaScript
二进制间距
🎈每天进行一道算法题目练习,今天的题目是“二进制间距”。
128 0
|
编解码 Android开发
关于Android获取屏幕宽高、dp、sp、px之间的转化
开发过程中,动态创建布局,或者自定义view,少不了需要获取屏幕宽高,这里的宽高指手机屏幕的分辨率,单位是px,而我们在布局文件中用到的空间宽高单位是dp,字体用的是sp。 这几个计量单位之间,是有关联的,比如dp与px,是通过density来相互转化的,px跟sp则通过scaledDensity来相互转化,类似于小学的除数、被除数、商,三者之间的关系。
500 0