读取sd卡下图片,由图片路径转换为bitmap
2016-01-07 18:06
399 查看
public Bitmap convertToBitmap(String path, int w, int h) {
BitmapFactory.Options opts = new BitmapFactory.Options();
// 设置为ture只获取图片大小
opts.inJustDecodeBounds = true;
opts.inPreferredConfig = Bitmap.Config.ARGB_8888;
// 返回为空
BitmapFactory.decodeFile(path, opts);
int width = opts.outWidth;
int height = opts.outHeight;
float scaleWidth = 0.f, scaleHeight = 0.f;
if (width > w || height > h) {
// 缩放
scaleWidth = ((float) width) / w;
scaleHeight = ((float) height) / h;
}
opts.inJustDecodeBounds = false;
float scale = Math.max(scaleWidth, scaleHeight);
opts.inSampleSize = (int)scale;
WeakReference<Bitmap> weak = new WeakReference<Bitmap>(BitmapFactory.decodeFile(path, opts));
return Bitmap.createScaledBitmap(weak.get(), w, h, true);
}
其中w和h你需要转换的大小
path转换为bitmap:上面方法即可;
imageview获取drawable并转换为 bitmap :Bitmap bt= ((BitmapDrawable) mImageview.getDrawable()).getBitmap();
resourceid转换为bitmap:Bitmap bt = BitmapFactory.decodeResource(getResources(), R.drawable.resourceid);
Drawable转换为bitmap:Bitmap bt= ((BitmapDrawable) Drawable).getBitmap();
因为BitmapDrawable是继承Drawable,所以可以灵活的转换
BitmapFactory.Options opts = new BitmapFactory.Options();
// 设置为ture只获取图片大小
opts.inJustDecodeBounds = true;
opts.inPreferredConfig = Bitmap.Config.ARGB_8888;
// 返回为空
BitmapFactory.decodeFile(path, opts);
int width = opts.outWidth;
int height = opts.outHeight;
float scaleWidth = 0.f, scaleHeight = 0.f;
if (width > w || height > h) {
// 缩放
scaleWidth = ((float) width) / w;
scaleHeight = ((float) height) / h;
}
opts.inJustDecodeBounds = false;
float scale = Math.max(scaleWidth, scaleHeight);
opts.inSampleSize = (int)scale;
WeakReference<Bitmap> weak = new WeakReference<Bitmap>(BitmapFactory.decodeFile(path, opts));
return Bitmap.createScaledBitmap(weak.get(), w, h, true);
}
其中w和h你需要转换的大小
path转换为bitmap:上面方法即可;
imageview获取drawable并转换为 bitmap :Bitmap bt= ((BitmapDrawable) mImageview.getDrawable()).getBitmap();
resourceid转换为bitmap:Bitmap bt = BitmapFactory.decodeResource(getResources(), R.drawable.resourceid);
Drawable转换为bitmap:Bitmap bt= ((BitmapDrawable) Drawable).getBitmap();
因为BitmapDrawable是继承Drawable,所以可以灵活的转换
相关文章推荐
- RedHat 6.5(x86_64)启动nagios客户端nrpe报错的解决方法
- linux 下日常使用便利工具
- 网页一键复制
- 项目管理-计划与实施,哪个更重要
- python日期和时间
- $GLOBALS['HTTP_RAW_POST_DATA'] 和$_POST的区别
- python用paramiko将执行的结果存入excel表格
- 最强日期正则表达式
- Android卸载程序之后跳转到指定的反馈页面
- 制作一个有界面的OCX
- 笔记本电脑屏幕变暗的原因及解决方法
- 「试用」是比「面试」更有效的招聘策略
- CSS Selector(berserkjs用到)
- Block传值与协议传值的比较
- duplicate symbol 错误
- 自定义HTTP错误页太小,导致显示默认友好错误页问题
- 一般PID的C语言实现
- 飞行姿态解算笔记(二)
- windows下修改android adb.exe的port
- java 四舍五入保留小数的诡异