Android 如何读取本地图片或者资源图片并自定义大小

摘要:将图片资源设置到控件的src属性并且要求全屏,且不丢失内容时,我们需要对原始的图片进行处理,改变大小来适应屏幕,尤其是对包含虚拟键盘的Android设备,需要手动增加图片的高度来实现虚拟键盘消失时的全屏

读取本地图片并自定义大小

Resources res = getResources();
//savedPath为图片路径
Bitmap bitmap =BitmapFactory.decodeFile(savedPath);
//Bitmap bitmap = BitmapFactory.decodeResource(res,R.drawable.test);
//自定义图片大小
Bitmap newBmp = Bitmap.createScaledBitmap(bitmap, width, height, true);
//将bitmap转化为Drawable,这是新的方法,如果用过时的方法Drawable drawable  = new BitmapDrawable(newBmp),则会造成图片大小和原来图片大小不符的情况,当然这种情况发生在没有自定义大小的情况下
Drawable drawable  = new BitmapDrawable(res,newBmp);

按比例放大或者缩小图片

注:当图片的长大于屏幕高度,宽小于屏幕宽度,并且要求全屏显示时使用

Resources res = getResources();
DisplayMetrics metrics = getResources().getDisplayMetrics();
width = metrics.widthPixels;
//根据资源id获取图片
Bitmap bitmap = BitmapFactory.decodeResource(res,R.drawable.test);
int bit_width = bitmap.getWidth();
int bit_height = bitmap.getHeight();
//计算高宽比
float p = (float) bit_height/bit_width;
Bitmap newBmp = Bitmap.createScaledBitmap(bitmap, width,(int)(width*p), true);
Drawable drawable  = new BitmapDrawable(res,newBmp);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值