图片处理
16lz
2021-01-25
Android中提供了Bitmap和BitmapFactory对象,可以读取存储卡或者手机系统里的图片。BitmapFactory可以将图片文件转换成Bitmap对象。
1. decodeFile(String pathName)将手机文件系统中的图片转为Bitmap对象
2. decodeResource(Resources res, int id)将/res/drawable内图片文件转为Bitmap对象
3. decodeStream(InputStream is)将InputStream转为Bitmap对象
当然还有很多方法,这里不一一列举,大家可以查看一下API。
因为在Android中不允许ImageView在产生后,动态修改其长度与宽度,所以在实现图片放到缩小功能的时候,我们要将原来Layout中的ImageView三处,重新生成一个ImageView,指定图片给它后,再放入layout中。用户看来就好像同一张图片在放大或缩小了。在放大或者缩小的图片时,我们要用到一个Matrix对象,除了缩放图片外,还可以做旋转效果。
缩放图片key code:
图片旋转key code:
1. decodeFile(String pathName)将手机文件系统中的图片转为Bitmap对象
2. decodeResource(Resources res, int id)将/res/drawable内图片文件转为Bitmap对象
3. decodeStream(InputStream is)将InputStream转为Bitmap对象
当然还有很多方法,这里不一一列举,大家可以查看一下API。
因为在Android中不允许ImageView在产生后,动态修改其长度与宽度,所以在实现图片放到缩小功能的时候,我们要将原来Layout中的ImageView三处,重新生成一个ImageView,指定图片给它后,再放入layout中。用户看来就好像同一张图片在放大或缩小了。在放大或者缩小的图片时,我们要用到一个Matrix对象,除了缩放图片外,还可以做旋转效果。
缩放图片key code:
float scaleWidth, scaleHeight = 1;int bitmapWidth = bitmap.getWidth();int bitmapHeight = bitmap.getHeight();// 设置图片缩放比例(<1缩小,>1放到)double scale = 0.8scaleWidth = (float)(scaleWidth);scaleHeight = (float)(scaleHeight);// 产生resize后的Bitmap对象Matrix matrix = new Matrix();matrix.postScale(scaleWidth,scaleHeight);Bitmap resizeBitmap = Bitmap.createBitmap(bitmap,0,0,bitmapWidth,bitmapHeight,matrix,true);
图片旋转key code:
int scaleAngle = 1;Matrix matrix = new Matrix();//向左旋转10°matrix.setRotate(10 * scaleAngle);Bitmap resizeBitmap = Bitmap.createBitmap(bitmap,0,0,bitmapWidth,bitmapHeight,matrix,true);
更多相关文章
- Android手机拍照(Android学习随笔九)
- 百度地图系列01——最简单的调用百度地图
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveI
- android中的hdpi,ldpi,mdpi
- 屏幕元素的层次
- Android马赛克效果MosaicView
- Android(安卓)shap Animation
- Android(安卓)支持的媒体格式(音频,视频,图片)
- Android(安卓)内存优化