Android BitmapFactory.Options 对图片进行缩放以符合ImageView大小
2018-02-10 16:20
585 查看
首先 图片的选取
icon应该是png
view pager、recycler view中的图应该是jpg
其次让图片的尺寸缩放成ImageView的尺寸,实现资源的节约
1.BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
这样做会仅仅加载图片的宽高到内存中
2.
int inSampleSize = 1;
int width = options.outWidth;
int height = options.outHeight;
if (width > wantWidth || height > wantHeight) {
int halfWidth = width / 2;
int halfHeight = height / 2;
while (halfWidth / inSampleSize >= wantWidth && halfHeight / inSampleSize >= wantHeight) {
inSampleSize *= 2;
}
}宽高就被保存在了options.outWidth;options.outHeight;里。我们再根据image view的宽高计算出缩放比例
3.
options.inSampleSize = inSampleSize;
options.inJustDecodeBounds = false;
缩放比例赋给inSampleSize
然后inJustDecodeBounds代表实际加载
这样一来 就会加载出一个 缩放后的bitmap到内存中
方法如下
public class BitmapUtils {
public static Bitmap getGoodBitmap(Context context, int resId, int wantWidth, int wantHeight) {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(context.getResources(), resId, options);
int inSampleSize = 1;
int width = options.outWidth;
int height = options.outHeight;
if (width > wantWidth || height > wantHeight) {
int halfWidth = width / 2;
int halfHeight = height / 2;
while (halfWidth / inSampleSize >= wantWidth && halfHeight / inSampleSize >= wantHeight) {
inSampleSize *= 2;
}
}
options.inSampleSize = inSampleSize;
options.inJustDecodeBounds = false;
return BitmapFactory.decodeResource(context.getResources(),resId,options);
}
}
注意 你传入的参数,应该是你经过测绘出的get width、get height,这样获取出来的才是px(像素)。布局文件中指定的是dp,在不同的手机上会进行不同的换算,不能作为参考的标准。
icon应该是png
view pager、recycler view中的图应该是jpg
其次让图片的尺寸缩放成ImageView的尺寸,实现资源的节约
1.BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(context.getResources(), resId, options);
这样做会仅仅加载图片的宽高到内存中
2.
int inSampleSize = 1;
int width = options.outWidth;
int height = options.outHeight;
if (width > wantWidth || height > wantHeight) {
int halfWidth = width / 2;
int halfHeight = height / 2;
while (halfWidth / inSampleSize >= wantWidth && halfHeight / inSampleSize >= wantHeight) {
inSampleSize *= 2;
}
}宽高就被保存在了options.outWidth;options.outHeight;里。我们再根据image view的宽高计算出缩放比例
3.
options.inSampleSize = inSampleSize;
options.inJustDecodeBounds = false;
缩放比例赋给inSampleSize
然后inJustDecodeBounds代表实际加载
这样一来 就会加载出一个 缩放后的bitmap到内存中
方法如下
public class BitmapUtils {
public static Bitmap getGoodBitmap(Context context, int resId, int wantWidth, int wantHeight) {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(context.getResources(), resId, options);
int inSampleSize = 1;
int width = options.outWidth;
int height = options.outHeight;
if (width > wantWidth || height > wantHeight) {
int halfWidth = width / 2;
int halfHeight = height / 2;
while (halfWidth / inSampleSize >= wantWidth && halfHeight / inSampleSize >= wantHeight) {
inSampleSize *= 2;
}
}
options.inSampleSize = inSampleSize;
options.inJustDecodeBounds = false;
return BitmapFactory.decodeResource(context.getResources(),resId,options);
}
}
注意 你传入的参数,应该是你经过测绘出的get width、get height,这样获取出来的才是px(像素)。布局文件中指定的是dp,在不同的手机上会进行不同的换算,不能作为参考的标准。
相关文章推荐
- Android实战简易教程-第九枪(BitmapFactory.Options对资源图片进行缩放)
- Android实战简易教程-第九枪(BitmapFactory.Options对资源图片进行缩放)
- Android实战简易教程<九>(BitmapFactory.Options对资源图片进行缩放)
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- Android 改变ImageView图片的Bitmap大小
- android ImageView 视屏幕情况 使图片在限定范围内进行缩放显示
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- Android手势滑动实现ImageView缩放图片大小
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byte
- Android自定义imageview可对图片进行多点缩放和拖动
- BitmapFactory.Options对图片进行缩放
- android 将图片内容解析成字节数组,将字节数组转换为ImageView可调用的Bitmap对象,图片缩放,把字节数组保存为一个文件,把Bitmap转Byt
- ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等。 设置的方式包括: 1. 在layout xml中定义Android:s
- 自定义的ImageView控制,可对图片进行多点触控缩放和拖动
- android 自定义ImageView实现图片手势滑动、多点触摸缩放
- Android ImageView 图片等比缩放问题
- Android imageView图片按比例缩放
- Android imageView图片按比例缩放