android:minSdkVersion =“8”时如何获取图像的高度和宽度

时间:2013-07-25 14:20:47

标签: android

通常,我可以使用以下代码来获取图像的宽度,但它需要API级别16。 如何在android:minSdkVersion =“8”

时获取图像的高度和宽度
Cursor cur = mycontext.getContentResolver().query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null,
                MediaStore.Images.Media._ID + "=?", new String[] { id }, "");
string width=cur.getString(cur.getColumnIndex(MediaStore.Images.Media.HEIGHT));

1 个答案:

答案 0 :(得分:6)

将选项传递给解码工厂的边界:

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;

OR

您可以使用ImageViewgetWidth()来获得getHeight()的高度和宽度,而这不会为您提供图像的确切宽度和高度,以获得图像宽度高度首先你需要将drawable作为背景,然后将drawable转换为 BitmapDrawable`以获取图像作为Bitmap,你可以获得像这里的宽度和高度

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();