BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(
new FileInputStream(new File(path_image)), null, o);
int w = o.outWidth;
int h = o.outHeight;
int scale = 1;
while (true) {
if (w / 2 <= mWidth_image || h / 2 <= mWidth_image) {
break;
}
w /= 2;
h /= 2;
scale *= 2;
}
o.inSampleSize = scale;
o.inJustDecodeBounds = false;
newBitmap = BitmapFactory.decodeStream(
new FileInputStream(new File(path_image)), null, o);
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(
new FileInputStream(new File(path_image)), null, o);
int w = o.outWidth;
int h = o.outHeight;
int scale = 1;
while (true) {
if (w / 2 <= mWidth_image || h / 2 <= mWidth_image) {
break;
}
w /= 2;
h /= 2;
scale *= 2;
}
o.inSampleSize = scale;
o.inJustDecodeBounds = false;
newBitmap = BitmapFactory.decodeStream(
new FileInputStream(new File(path_image)), null, o);
s
--------------------编程问答--------------------
楼主有这么大的图片显示,真少见,,如果楼主解决了,,,希望分享下经验,,谢谢了
--------------------编程问答--------------------
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(
new FileInputStream(new File(path_image)), null, o);
int w = o.outWidth;
int h = o.outHeight;
int scale = 1;
while (true) {
if (w / 2 <= mWidth_image || h / 2 <= mWidth_image) {
break;
}
w /= 2;
h /= 2;
scale *= 2;
}
o.inSampleSize = scale;
o.inJustDecodeBounds = false;
newBitmap = BitmapFactory.decodeStream(
new FileInputStream(new File(path_image)), null, o);
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(
new FileInputStream(new File(path_image)), null, o);
int w = o.outWidth;
int h = o.outHeight;
int scale = 1;
while (true) {
if (w / 2 <= mWidth_image || h / 2 <= mWidth_image) {
break;
}
w /= 2;
h /= 2;
scale *= 2;
}
o.inSampleSize = scale;
o.inJustDecodeBounds = false;
newBitmap = BitmapFactory.decodeStream(
new FileInputStream(new File(path_image)), null, o);
你可以参考一下,这个不会把图片加载到内存中,就可以获取宽和高。
为什么我这 获取bitmap为空 第一次decodeStream时候就是空 文件确实在该路径下
你要注意injusetdecodebounds的设置,确定为false才会真正的加载图片到内存。
--------------------编程问答--------------------
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(
new FileInputStream(new File(path_image)), null, o);
int w = o.outWidth;
int h = o.outHeight;
int scale = 1;
while (true) {
if (w / 2 <= mWidth_image || h / 2 <= mWidth_image) {
break;
}
w /= 2;
h /= 2;
scale *= 2;
}
o.inSampleSize = scale;
o.inJustDecodeBounds = false;
newBitmap = BitmapFactory.decodeStream(
new FileInputStream(new File(path_image)), null, o);