我怎么知道我的设备中的imageView的实际大小?

时间:2014-08-29 18:29:52

标签: android android-layout layout view

我有一个宽度为matchParent属性的ImageView。

我怎么知道我的设备上的运行时宽度(使用eclipse,而不是以编程方式添加代码)?

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

2 个答案:

答案 0 :(得分:1)

  

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

您可以在测量ImageView时获得宽度,即晚于运行时。但是你可以像这样得到屏幕的宽度和高度:

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

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

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

  

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

将20个像素转换为DP do(添加到上面的代码中):

int dp = 20 / metrics.density:

额外:这是dpi到像素calculator

答案 1 :(得分:0)

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