Android 图像资源与其屏幕上的合成大小之间的关系

Android 图像资源与其屏幕上的合成大小之间的关系,android,android-image,Android,Android Image,假设我的可绘制hdpi文件夹中有一个cat.png,尺寸为100*100 px。现在,如果我使用大小设置为“wrap_content”的ImageView加载此图片: 如果不调用“getHeight()”,如何知道图像视图的大小(以像素为单位)?图像视图的大小和数字“100”之间一定有关系,但我试图将“100”从DP转换为PX,从PX转换为DP,等等,但没有成功。如果图像是100px,mdpi中的图像是100dp 那么100dp意味着: 它是mdpi上的100px 它在hdpi上运行150px

假设我的
可绘制hdpi
文件夹中有一个
cat.png
,尺寸为100*100 px。现在,如果我使用大小设置为“wrap_content”的ImageView加载此图片:


如果不调用“getHeight()”,如何知道图像视图的大小(以像素为单位)?图像视图的大小和数字“100”之间一定有关系,但我试图将“100”从DP转换为PX,从PX转换为DP,等等,但没有成功。

如果图像是100px,mdpi中的图像是100dp

那么100dp意味着: 它是mdpi上的100px 它在hdpi上运行150px 它在xhdpi上运行200px

因此,android将试图找到最适合使用的资源。对于Drawable,它还会自动缩放图像,这样,如果您将图像设置为100px,并将其放置在mdpi中,它将用于hdpi屏幕,但将其设置为150px。不建议这样做,您应该始终尝试将所有资源放入所有文件夹(mdpi hdpi xhdpi)

有一个助手方法可以帮助您通过代码将100dp转换为像素


好的,你说得对。问题是可绘制的hdpi,它已经是其大小的150%。所以我的问题的答案是:
convertDPtoPX(100/1.5)
cat_image.setImageResource(R.drawable.cat);