在 android 中从一个单位传递到另一个单位?

Passing from one unit to another in android?

嗯,我一直在想,有没有一种简单的方法可以将 dp 或毫米甚至英寸转换为 px。 (比如:6dp 就是 20px) 似乎一切通常都是以像素为单位完成的,但我想用它们来保持不同屏幕的比例,并粗略地了解将有多大(用像素猜测感觉真的......很麻烦) 提前致谢,如果问题太模糊,我们深表歉意。

无法以编程方式将毫米甚至英寸转换为 px。如果你想支持不同的屏幕,你可以按照文档here。 将dp转换为px,也可以使用以下方法:

/**
 * Convert dp to px.
 * @param context 
 * @param dp the input dp.
 * @return the output px.
 */
public static int dpToPx(Context context, int dp) {
    float density = context.getResources().getDisplayMetrics().density;
    return (int) (dp * density + 0.5);
}

更新:

获取设备的宽度和高度像素的方法如下:

DisplayMetrics metrics = context.getResources().getDisplayMetrics();
int widthPixels = metrics.widthPixels;
int heightPixels = metrics.heightPixels;