android学习日记09--BitMap操作

Bitmap,android里的图像类,支持jpg、png、bmp等格式的图像
Bitmap不能new新建,而是通过BitmapFactory工厂模式创建的

android支持一些方法对图像的平移、选择、透明化等操作
这样子可以节省很多系统资源

android学习日记09--BitMap操作
 1                 // 获取图标图像的实例
 2                 Bitmap bitmap = BitmapFactory.decodeResource(this.getResources()
                    , R.drawable.ic_launcher);
 3                 // 绘制图像
 4                 canvas.drawBitmap(bitmap, 0, 0, paint);
 5                 // 保存当前状态
 6                 canvas.save();
 7 
 8                 // 绕图像中点旋转90度
 9                 canvas.rotate(30, bitmap.getWidth()/2, bitmap.getHeight()/2);
10                 // 为了不重叠,画在(50,0)这点,x,y轴相对旋转也发生变化
11                 canvas.drawBitmap(bitmap, 50, 0, paint);
12                 
13                 //恢复上次保存的状态与save()对应
14                 canvas.restore();
15                 canvas.drawBitmap(bitmap, 100, 100, paint);
16                 
17                 //平移
18                 canvas.translate(0, 50);
19                 canvas.drawBitmap(bitmap, 100, 100, paint);
20                 
21                 // 缩放,参数分别表示:x轴缩放2倍,y轴缩放2倍,3,4参数表示缩放的起始点
22                 canvas.scale(2, 2, 50+bitmap.getWidth()/2, 50+bitmap.getHeight()/2);
23                 canvas.drawBitmap(bitmap, 100, 100, paint);
24                 
25                 // 相对y轴镜像
26                 canvas.scale(1, -1, 50+bitmap.getWidth()/2, 50+bitmap.getHeight()/2);
27                 canvas.drawBitmap(bitmap, 100, 100, paint);
android学习日记09--BitMap操作

效果如下:

android学习日记09--BitMap操作

png格式和其他图像格式的区别是,png图像支持透明,
可以多个图像叠加在一起,而其他格式的图片就会被覆盖

android学习日记09--BitMap操作
 1                 //绘制一张背景图片,充满整个屏幕
 2                 Bitmap bitmap1 = BitmapFactory.decodeResource(this.getResources()
                    , R.drawable.background);
3 canvas.drawBitmap(bitmap1, 0, 0, paint); 4 5 // png的图片,左边螃蟹边缘是透明的,因此不会有问题 6 Bitmap bitmap2 = BitmapFactory.decodeResource(this.getResources()
                    , R.drawable.crab);
7 canvas.drawBitmap(bitmap2, 20, 200, paint); 8 9 // jpg的图片,右边螃蟹边缘把背景遮挡了 10 Bitmap bitmap3 = BitmapFactory.decodeResource(this.getResources()
                    , R.drawable.carb2);
11 canvas.drawBitmap(bitmap3, 200, 230, paint);
android学习日记09--BitMap操作

效果图如下:

android学习日记09--BitMap操作

android学习日记09--BitMap操作

上一篇:实现继承的两种方式 call/apply 和 prototype


下一篇:Android TextView 支持的HTML标签