如何获取图片的宽度和高度?

23

你好,

我想获取存储在drawable文件夹中的图像的宽度和高度。如果可以,请告诉我如何操作。


1
这是非常好的答案,我使用了这个答案来设置与消息状态ImageView [一个已选中的图标,两个已选中的图标] 相同: https://dev59.com/GWkw5IYBdhLWcg3wx9eC - SBotirov
2个回答

62

尝试

BitmapDrawable bd=(BitmapDrawable) this.getResources().getDrawable(R.drawable.icon);
int height=bd.getBitmap().getHeight();
int width=bd.getBitmap().getWidth();

11
我倾向于不使用转换操作,而是使用Drawable.getIntrinsicWidth/Height()方法来实现此操作。 - hackbod
1
使用上述代码,得到原始大小的三分之二。例如-图像的尺寸为644 X 550;但是我从代码中获得了429 X 367。可能出了什么问题? - Avisek Chakraborty
你有多个密度文件夹吗?例如hdpi和mdpi?听起来BitmapDrawable不知道该选择哪一个。在选项中设置正确的密度,例如http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html - David T.
1
getDrawable方法已被弃用。哪个方法可替代“getDrawable”方法? - Sanket990
2
getDrawable的非弃用版本是ResourcesCompat.getDrawable,它支持主题。如果您不需要主题,只需将null传递给它即可(文档在此处:http://developer.android.com/reference/android/support/v4/content/res/ResourcesCompat.html)。 - GeordieMatt

15

我按照这个链接尝试获取Android中图片的高度和宽度:

Drawable d = getResources().getDrawable(R.drawable.yourimage);
int h = d.getIntrinsicHeight();
int w = d.getIntrinsicWidth();

1
这对我更适用,因为它可以给出视图的大小,无论它是否显示在屏幕上! - Navid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接