![](http://static.blog.csdn.net/images/category_icon.jpg)
版权声明:本文为"stone"原创文章,转载请注明出处 —— http://blog.csdn.net/jjwwmlp456。QQ交流群:473876194
1. BitmapFactory.Options
options.inSampleSize,它的取值应该是2的次方:1、2、4、8…
表示宽高都是原来的1/1, 1/2, 1/4, 1/8…
如果设置的值 < 1,那么效果就和 =1是一样的
再调用BitmapFactory的相关decode方法,传入options参数,即可得到一张缩小后的图片。
附上一段计算inSampleSize的方法:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
2. Bitmap.createBitmap(Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter)
以source的x,y为起点,宽w高h的范围,进行matrix变化。
这里只讨论缩放,那么matrix肯定是添加了scale操作。
要注意的是这里的参数x、y、width、height都是相对于source原图的。
如果x=y=0; w=source.getWidth()/2, h=source.getHeight()/2;scale=2;
那么最后的效果,只是取原图的左上四分之一的部份…并对这部份进行2倍放大
3. Bitmap.createScaledBitmap(bitmap, w, h, boolean filter);
以w,h为目标对bitmap进行缩放,filter表示是否要对位图进行过滤(滤波)处理
这个方法的效果就类似于ImageView.ScaleType.FIT_XY