您的位置:首页 > 移动开发 > Android开发

Android中图片通过BitmapFactory进行压缩

2016-11-17 19:24 453 查看
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//第一种方法,直接设置
//      iv.setImageResource(R.drawable.lye1);
//第二种方法,通过BitmapFactory来给ImageView设置资源
/*Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.lye1);
iv.setImageBitmap(bitmap);*/
//第三种,进行图片的缩放
Options opts = new Options();
//只获取图片的宽高标记
opts.inJustDecodeBounds = true;
BitmapFactory.decodeResource(getResources(), R.drawable.lye1, opts);
int imgWidth = opts.outWidth;//通过Options对象获取资源图片的宽度
int imgHeight = opts.outHeight;//通过Options对象获取资源图片的高度

//获取手机屏幕的宽度和高度
WindowManager manager = getWindow().getWindowManager();
Display display = manager.getDefaultDisplay();
Point outSize = new Point();
display.getSize(outSize );
int screenWidth = outSize.x;
int screenHeight = outSize.y;
//计算压缩比
int yashuoX = imgWidth/screenWidth;
int yashouY = imgHeight/screenHeight;
int bili = yashuoX>yashouY?yashuoX:yashouY;
if (bili<1) {
bili = 1;
}
//设置取消只获取图片的宽高标记
opts.inJustDecodeBounds = false;
//设置压缩比,可以使用上面计算的,也可以直接设置int值
opts.inSampleSize = 2;
//重新获取图片资源(压缩后的图片资源)
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.lye1, opts);
//显示图片
iv.setImageBitmap(bitmap);
return super.onOptionsItemSelected(item);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 图片
相关文章推荐