setWidth(整像素)是以设备独立像素还是物理像素为单位?例如,setWidth( 100 )是否将视图的宽度设置为100个像素或100个像素?
谢谢。
发布于 2010-03-09 13:06:18
它使用像素,但我敢肯定你想知道如何使用dips代替。答案就在TypedValue.applyDimension()
中。下面是如何在代码中将dips转换为px的示例:
// Converts 14 dip into its equivalent px
Resources r = getResources();
int px = Math.round(TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 14,r.getDisplayMetrics()));
发布于 2013-02-17 22:15:27
在代码中获得恒定次数的正确方法是创建一个包含DP值的资源XML文件,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="image_width">100dp</dimen>
<dimen name="image_height">75dp</dimen>
</resources>
然后在代码中引用资源,如下所示:
float width = getResources().getDimension(R.dimen.image_width));
float height = getResources().getDimension(R.dimen.image_height));
您返回的浮点数将根据设备的像素密度进行相应的缩放,因此您不需要在整个应用程序中重复使用转换方法。
发布于 2014-11-01 14:35:38
方法setWidth( 100 ),设置100像素作为宽度(不在dp中).So你可能会面临不同的安卓phones.So宽度变化的问题使用dp中的测量而不是pixels.Use下面的代码来获得样本width=300px和height=400px的dp中的测量值。
int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 300, getResources().getDisplayMetrics());
int Height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 400, getResources().getDisplayMetrics());
https://stackoverflow.com/questions/2406449
复制相似问题