2011.09.26(7)——— android Bitmap的截取及缩放
参考:http://chroya.iteye.com/blog/710262
有一个任务 显示一张图片的中间地方的图片
1、
什么也不用设 只要固定了imageView的宽和高 就会自动缩放来填充这个imageview
2、截取
一张大图 我要截取其中的部分
Bitmap.createBitmap(Bitmap source, int x, int y, int width, int height)
例如
Bitmap bitmap = Bitmap.createBitmap(b, 100, 20, 200, 300);
从bitmap对象b的(100,20)开始截取宽为200,高为300的部分图像
3、ScaleType
参考:http://www.cnblogs.com/over140/archive/2010/09/19/1830703.html
上面那个虽然实现了 但是又重新生成了一张图片 内存开支有点大 我又找了找 可以用这个
iv.setScaleType(ImageView.ScaleType.CENTER);
android:scaleType 参数如下
matrix用矩阵来绘图 fitXY拉伸图片(不按比例)以填充View的宽高fitStart按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的左边fitCenter按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的中间fitEnd按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的右边center按原图大小显示图片,但图片宽高大于View的宽高时,截图图片中间部分显示centerCrop按比例放大原图直至等于某边View的宽高显示。centerInside当原图宽高小于或等于View的宽高时,按原图大小居中显示;反之将原图缩放至View的宽高居中显示。
4、得到缩放后的图片
Bitmap mBitmap = Bitmap.createScaledBitmap(bmp, mScreenWidth, mScreenHeight, true);
这个方法可以得到自己固定宽和高后的图片 系统会自动缩放并返回