Android 图片叠加(Drawable 与 Bitmap)

本文介绍了在Android中如何使用Drawable和Bitmap实现图片叠加效果,包括如何创建LayerDrawable对象叠加Drawable图片,以及如何通过Canvas将Bitmap叠加到另一张Bitmap上。
摘要由CSDN通过智能技术生成

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

Android中,不同的图片格式有不同的叠加方式,下面主要介绍Drawable和Bitmap两种常见图片格式的叠加方式。

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值