摘要:将图片资源设置到控件的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);