android:获取图像尺寸而不打开它

我想获得存储在SD卡上的图像的宽度和高度(以像素为单位),然后将它们加载到RAM中。 我需要知道尺寸,所以我可以在加载时对它们进行缩减采样。 如果不下采样他们我得到一个OutOfMemoryException。

任何人都知道如何获得图像文件的尺寸?

通过选项来解码到工厂的边界:

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; 

HTH

其实还有另外一个办法来解决这个问题。 使用下面的方式,我们可以避免文件和URI的麻烦。

 BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; ParcelFileDescriptor fd = mContext.getContentResolver().openFileDescriptor(u, "r"); // u is your Uri BitmapFactory.decodeFileDescriptor(fd.getFileDescriptor(), null, options);