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
单位转换为像素。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...