如何知道设备中 imageView 的实际大小?
Posted
技术标签:
【中文标题】如何知道设备中 imageView 的实际大小?【英文标题】:how can i know the actual size of an imageView in my device? 【发布时间】:2014-08-29 18:29:51 【问题描述】:我有一个宽度为 matchParent 属性的 ImageView。
我如何知道它在我的设备上的运行时宽度(使用 eclipse,无需以编程方式添加代码)?
我如何知道我的设备中 dpi 到 pxls 的转换率?
【问题讨论】:
【参考方案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:
额外:这是像素的 dpi calculator
【讨论】:
【参考方案2】:如果您不想使用TreeObserverListener
方式,您可以尝试让View
进行自我测量,并为您提供计算后的尺寸。以我的经验,这在大多数情况下都有效,但并非全部。特别是如果View
处于某些特殊的动态布局中,或者层次结构的顺序会阻止以正确的顺序计算尺寸。参考这个受欢迎的answer,您可能会很幸运。
【讨论】:
以上是关于如何知道设备中 imageView 的实际大小?的主要内容,如果未能解决你的问题,请参考以下文章
android中imageview里的图片大小是不是可以比imageview本身大,如果可以,如何设置?
启动图像情节提要添加了 Imageview ,但更改资产文件夹中的图像实际上并未反映在设备上?