##缩放图片并加载到内存中
解决办法:缩放图片。
缩放图片加载到内存步骤:
1、得到设备屏幕的分辨率的宽和高:
2、得到原图的分辨率的宽和高:
3、通过比较得到一个合适的比例值:
4、根据比例值缩放原图,得到一张小图:
5、把小图显示在imageview上:
模版代码:
// 1、得到设备屏幕的分辨率的宽和高:
//得到系统提供的屏幕管理服务对象
WindowManager wm = (WindowManager)getSystemService(WINDOW_SERVICE);
//得到默认分辨率对象
Display display = wm.getDefaultDisplay();
//得到屏幕的宽和高
int screenWidth = display.getWidth();
int screeHeigth = display.getHeight();
// 2、得到原图的分辨率的宽和高:
Options opts = new Options();
opts.inJustDecodeBounds = true;
BitmapFactory.decodeFile(
Environment.getExternalStorageDirectory()
+"/1.jpg", opts);
//得到原图的宽和高
int srcWidth = opts.outWidth;
int srcHeigth = opts.outHeight;
// 3、通过比较得到一个合适的比例值:
int scale = 1;
// width:3000/320=9,3000/480=6
int sx = srcWidth/screenWidth;
int sy = srcHeigth/screeHeigth;
if(sx>=sy && sx>=1){
scale = sx;
}
if(sy>=sx && sy>=1){
scale = sy;
}
// 4、根据比例值缩放原图,得到一张小图:
opts.inJustDecodeBounds = false;
//按照一定的比例值缩放图片,宽和高都是原图的1/scale
opts.inSampleSize = scale;
Bitmap bm = BitmapFactory.decodeFile(
Environment.getExternalStorageDirectory()
+"/1.jpg", opts);
// 5、把小图显示在imageview上:
iv.setImageBitmap(bm);
解决办法:缩放图片。
缩放图片加载到内存步骤:
1、得到设备屏幕的分辨率的宽和高:
2、得到原图的分辨率的宽和高:
3、通过比较得到一个合适的比例值:
4、根据比例值缩放原图,得到一张小图:
5、把小图显示在imageview上:
模版代码:
// 1、得到设备屏幕的分辨率的宽和高:
//得到系统提供的屏幕管理服务对象
WindowManager wm = (WindowManager)getSystemService(WINDOW_SERVICE);
//得到默认分辨率对象
Display display = wm.getDefaultDisplay();
//得到屏幕的宽和高
int screenWidth = display.getWidth();
int screeHeigth = display.getHeight();
// 2、得到原图的分辨率的宽和高:
Options opts = new Options();
opts.inJustDecodeBounds = true;
BitmapFactory.decodeFile(
Environment.getExternalStorageDirectory()
+"/1.jpg", opts);
//得到原图的宽和高
int srcWidth = opts.outWidth;
int srcHeigth = opts.outHeight;
// 3、通过比较得到一个合适的比例值:
int scale = 1;
// width:3000/320=9,3000/480=6
int sx = srcWidth/screenWidth;
int sy = srcHeigth/screeHeigth;
if(sx>=sy && sx>=1){
scale = sx;
}
if(sy>=sx && sy>=1){
scale = sy;
}
// 4、根据比例值缩放原图,得到一张小图:
opts.inJustDecodeBounds = false;
//按照一定的比例值缩放图片,宽和高都是原图的1/scale
opts.inSampleSize = scale;
Bitmap bm = BitmapFactory.decodeFile(
Environment.getExternalStorageDirectory()
+"/1.jpg", opts);
// 5、把小图显示在imageview上:
iv.setImageBitmap(bm);