在Android SDK中,ViewGroup(和子类)的构造函数没有重载,可以在DP(或DIP)中指定宽度和高度,而不是像素。为什么? 实际上我们有:
ViewGroup.LayoutParams(int width, int height)
有一个好主意:
ViewGroup.LayoutParams(int dpWidth, int dpHeight, int ComplexUnitType.Dip)
其中ComplexUnitType可以是带有度量单位的枚举(例如)
答案 0 :(得分:-1)
您可以使用TypedValue
类中使用的方法complexToDimensionPixelSize
,此方法接受要转换为像素的值和当前设备指标,因此可能的实现可能是这样的:
int width = 300; // value to be converted
DisplayMetrics metrics = getResources().getDisplayMetrics();
int widthInPx = TypedValue.complexToDimensionPixelSize(width, metrics);