Android:如何在代码中使用Dip密度独立像素?

问题描述

| 如何指定“ 0”参数在dip中?具体来说,怎么写相当于:
android:layout_width=\"50dip\" 
android:layout_height=\"50dip\" 
就像是...:
LayoutParams params = new LayoutParams(50,50)
    

解决方法

使用此处提到的公式http://developer.android.com/guide/practices/screens_support.html#screen-independence将默认像素转换为与密度无关的像素。或检查这是从Java代码在DIP中指定尺寸的正确方法是什么?     ,有一个内置方法也可以执行此操作:TypedValue.applyDimension。
// Convert from 50dip to actual pixels
final int width = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,50,getResources().getDisplayMetrics());
final int height = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,getResources().getDisplayMetrics());

LayoutParams params = new LayoutParams(width,height);
您也可以用它从
sp
单位转换为像素。