android 处理bitmap

//手机屏幕的宽高
int windowWidth = wm.getDefaultDisplay().getWidth();
int windowHeight = wm.getDefaultDisplay().getHeight();
				
BitmapFactory.Options opts = new Options();
//不去真正解析位图 只是获取图片的宽高
opts.inJustDecodeBounds =true;


BitmapFactory.decodeFile("/sdcard/stop.jpg", opts);
int bitmapHeight = opts.outHeight;
int bitmapWidth = opts.outWidth;
				
if(bitmapHeight>windowHeight || bitmapWidth>windowWidth){
	int scaleX = bitmapWidth/windowWidth;
	int scaleY = bitmapHeight/windowHeight;
	if(scaleX>scaleY){//水平方向缩放
		opts.inSampleSize = scaleX;
	} else {//竖直方向缩放
		opts.inSampleSize = scaleY;
	}
} else {//不缩放
	opts.inSampleSize = 1;
}
//让工厂真正的去解析位图
opts.inJustDecodeBounds = false;
Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/stop.jpg", opts);
ib_main_logo.setImageBitmap(bitmap);


原始的处理图片的方式

Bitmap bitmpa1 = BitmapFactory.decodeFile("/sdcard/stop.jpg");
ib_main_logo.setImageBitmap(bitmpa1);
如果图片太大 会抛出OutofMemory


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值