将仅解码边界的选项传递给工厂:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
//Returns null, sizes are in the options variable
BitmapFactory.decodeFile("/sdcard/image.png", options);
int width = options.outWidth;
int height = options.outHeight;
//If you want, the MIME type will also be decoded (if possible)
String type = options.outMimeType;
或者
ImageView
您可以通过使用getWidth()
和通过获得高度和宽度,getHeight()
虽然这不会为您提供图像的确切宽度和高度,为了获得图像宽度高度首先您需要将可绘制对象作为背景,然后将可绘制对象转换为
BitmapDrawable` 以获得图像作为位图,您可以像这里一样获得宽度和高度
Bitmap b = ((BitmapDrawble)imageView.getBackground()).getBitmap();
int w = b.getWidth();
int h = b.getHeight();
或者这样做
imageView.setDrawingCacheEnabled(true);
Bitmap b = imageView.getDrawingCache();
int w = b.getWidth();
int h = b.getHeight();
上面的代码会给你当前Imageview
大小的位图,比如设备的屏幕截图
仅ImageView
尺寸
imageView.getWidth();
imageView.getHeight();
如果你有可绘制的图像并且你想要那个尺寸,你可以像这样得到
Drawable d = getResources().getDrawable(R.drawable.yourimage);
int h = d.getIntrinsicHeight();
int w = d.getIntrinsicWidth();