Android 图片叠加(Drawable 与 Bitmap)

2014-11-24 12:16:28 · 作者: · 浏览: 3

图片叠加可以实现在图片上添加不同状态的图标标识,实现给不同图片增加相同的背景图等功能。


1、Drawable叠加


Drawable图片叠加主要通过LayerDrawable对象实现,给对象是Drawable的子类,所以可以直接叠加后返回Drawable类型


Drawable d1 = this.getResources().getDrawable(R.drawable.drawable1);
Drawable d2 = this.getResources().getDrawable(R.drawable.drawable2);
Drawable d3 = this.getResources().getDrawable(R.drawable.drawable3);


Drawable [] array = new Drawable []{d1, d2, d3};
LayerDrawable ld = new LayerDrawable(array);
return ld;


2、Bitmap叠加


Bitmap b1 = BitmapFactory.decodeResource(getResources(),
R.drawable.bitmap1);
Bitmap b2 = BitmapFactory.decodeResource(getResources(),
R.drawable.bitmap2);

if (!b1.isMutable()) {
//设置图片为背景为透明
b1 = b1.copy(Bitmap.Config.ARGB_8888, true);
}
Paint paint = new Paint();


Canvas canvas = new Canvas(b1);
canvas.drawBitmap(b2, 0, 0, paint);//叠加新图b2
canvas.save(Canvas.ALL_SAVE_FLAG);
canvas.restore();
return b1;