我想知道是否可以将我的java代码中LinearLayout的高度从100dp更改为200dp?
答案 0 :(得分:5)
是。
(int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 2, this.getResources()
.getDisplayMetrics()));
您也可以在值中添加维度并从资源中获取。
答案 1 :(得分:1)
试用本教程http://developer.android.com/guide/practices/screens_support.html#DensityConsiderations
它可以帮助您将dp转换为px。您可以在LayoutParams中设置此px值。希望它有用
答案 2 :(得分:0)
// The gesture threshold expressed in dp
private static final float GESTURE_THRESHOLD_DP = 16.0f;
// Get the screen's density scale
final float scale = getResources().getDisplayMetrics().density;
// Convert the dps to pixels, based on density scale
mGestureThreshold = (int) (GESTURE_THRESHOLD_DP * scale + 0.5f);
// Use mGestureThreshold as a distance in pixels...
DisplayMetrics.density
字段指定根据当前屏幕密度必须用于将dp
单位转换为像素的比例因子。在中密度屏幕上,DisplayMetrics.density
在高密度屏幕上等于1.0;
,在额外的高密度屏幕上等于1.5;
,等于2.0;
且低-density屏幕,它等于0.75
。此数字是您应该按顺序乘以dp
单位以获取当前屏幕的实际像素数的因子。 (然后添加0.5f
以将图形舍入为最接近的整数,转换为整数时。)有关详细信息,请参阅DisplayMetrics class。
来自android documentation的回答,因此您无需搜索内容