首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Android中获取ImageView/Bitmap的高度和宽度

如何在Android中获取ImageView/Bitmap的高度和宽度
EN

Stack Overflow用户
提问于 2012-01-16 20:59:47
回答 2查看 70.6K关注 0票数 29

我想要得到的高度和宽度的图像位图,这是在ImageView或背景图像。请帮助我,任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-16 21:15:33

您可以通过使用getWidth()和getHeight()来获取ImageView的高度和宽度,但这不会给出图像的确切宽度和高度。要获取图像宽度高度,首先需要获取可绘制内容作为背景,然后将可绘制内容转换为BitmapDrawable以获取位图形式的图像,这样您就可以获得如下所示的宽度和高度

代码语言:javascript
复制
Bitmap b = ((BitmapDrawable)imageView.getBackground()).getBitmap();
int w = b.getWidth();
int h = b.getHeight();

或者像这里这样做

代码语言:javascript
复制
imageView.setDrawingCacheEnabled(true);
Bitmap b = imageView.getDrawingCache();
int w = b.getWidth();
int h = b.getHeight();

上面的代码将为您提供当前图像视图大小的位图,如设备的屏幕截图

仅适用于ImageView大小

代码语言:javascript
复制
imageView.getWidth(); 
imageView.getHeight(); 

如果你有可绘制图像,你想要这个大小,你可以这样得到

代码语言:javascript
复制
Drawable d = getResources().getDrawable(R.drawable.yourimage);
int h = d.getIntrinsicHeight(); 
int w = d.getIntrinsicWidth();      
票数 92
EN

Stack Overflow用户

发布于 2018-01-05 19:10:12

由于某种原因,被接受的答案对我不起作用,相反,我获得了目标屏幕dpi的图像尺寸,如下所示。

方法1

代码语言:javascript
复制
Context context = this; //If you are using a view, you'd have to use getContext();
Resources resources = this.getResources();
BitmapFactory.Options bounds = new BitmapFactory.Options();
bounds.inJustDecodeBounds = true;
BitmapFactory.decodeResource(resources, R.drawable.cake, bounds); //use your resource file name here.
Log.d("MainActivity", "Image Width: " + bounds.outWidth);

这是原始链接

http://upshots.org/android/android-get-dimensions-of-image-resource

方法2

代码语言:javascript
复制
BitmapDrawable b = (BitmapDrawable)this.getResources().getDrawable(R.drawable.cake);
Log.d("MainActivity", "Image Width: " + b.getBitmap().getWidth());

它没有显示图像资源中确切的像素数,但这是一个有意义的数字,也许有人可以进一步解释。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8880376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档