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:
float scaleWidth, scaleHeight = 1;
int bitmapWidth = bitmap.getWidth();
int bitmapHeight = bitmap.getHeight();
// 设置图片缩放比例(<1缩小,>1放到)
double scale = 0.8
scaleWidth = (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);