两种方法 建议用第二种
private void getPictureSize(String path) {
/*第一种直接把bitmap加载到内存中,通过对bitmap的测量,
得出宽高,由于这个方法直接把图片引入内存,
如果图片过大,将会引发OOM;*/
//方法一:通过uri把图片转化为bitmap的方法
Bitmap bitmap = BitmapFactory.decodeFile(path);
int height = bitmap.getHeight();
int width = bitmap.getWidth();
Log.i("xg", "通过bitmap获取到的图片大小" + "width: " + width + " height: " + height);
/*bitmap.options类为bitmap的裁剪类,通过他可以实现bitmap的裁剪;
如果不设置裁剪后的宽高和裁剪比例,返回的bitmap对象将为空,
但是这个对象存储了原bitmap的宽高信息。*/
//方法二:使用Options类来获取
//inJustDecodeBounds If set to true, the decoder will return null (no bitmap)
//如果设置为空,则获取的bitmap为空,
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;//这个参数设置为true才有效,
Bitmap bmp = BitmapFactory.decodeFile(path, options);//这里的bitmap是个空
if (bmp == null) {
Log.e("xg", "通过options获取到的bitmap为空 ===");
}
int outHeight = options.outHeight;
int outWidth = options.outWidth;
Log.i("xg", "通过Options获取到的图片大小" + "width:" + outWidth + " height: " + outHeight);
}