2014-08-29 98 views

回答

1

我有一个ImageView的...我怎么能知道我的设备上运行时其宽度

的ImageView的测量时,你可以得到的宽度,即晚于运行。然而,你可以得到屏幕的宽度和高度是这样的:

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 

int height = metrics.heightPixels; 
int width = metrics.widthPixels; 

如果例如您的ImageView占用了屏幕的特定部分,你可以使用屏幕的宽度和高度测量。

我该如何知道设备中dpi与pxls之间的转换比率?

要转换说20个像素DP做(添加到上面的代码):

int dp = 20/metrics.density: 

附加:这里到像素calculator

一个DPI
0

如果您不想使用TreeObserverListener的方式,您可以尝试让View进行自我测量,并给出计算后的尺寸。根据我的经验,这在大多数情况下都行得通,但不是全部;特别是如果View处于某种特殊的动态布局或者层次结构的排序会阻止以正确的顺序计算维度。你可能会找到运气来指称这个流行的answer