大家可能知道Bitmap的叠加处理在Android平台中可以通过Canvas一层一层的画就行了,而Drawable中如何处理呢? 除了使用BitmapDrawable的getBitmap方法将Drawable转换为Bitmap外,今天Android123给大家说下好用简单的LayerDrawable类,LayerDrawable顾名思义就是层图形对象。下面直接用一个简单的代码表示:
Bitmap bm = BitmapFactory.decodeResource(getResources(),R.drawable.cwj);
Drawable[] array = new Drawable[3];
array[0] = new PaintDrawable(Color.BLACK); //黑色
array[1] = new PaintDrawable(Color.WHITE); //白色
array[2] = new BitmapDrawable(bm); //位图资源
LayerDrawable ld = new LayerDrawable(array); //参数为上面的Drawable数组
ld.setLayerInset(1, 1, 1, 1, 1); //第一个参数1代表数组的第二个元素,为白色
ld.setLayerInset(2, 2, 2, 2, 2); //第一个参数2代表数组的第三个元素,为位图资源
mImageView.setImageDrawable(ld);
上面的方法中LayerDrawable是关键,Android开发网提示setLayerInset方法原型为public void setLayerInset (int index, int l, int t, int r, int b) 其中第一个参数为层的索引号,后面的四个参数分别为left、top、right和bottom。对于简单的图片合成我们可以将第一和第二层的PaintDrawable换成BitmapDrawable即可实现简单的图片合成。
分享到:
相关推荐
android图片叠加,两种方法。canvas和LayerDrawable
2.代码中进行图层叠加,即把多个Drawable叠加在一起显示在一个组件之上。 效果图: 代码很简单: (1)布局文件: <RelativeLayout xmlns:android=http://schemas.android.com/apk/res/android xmlns:tools=...
本文实例讲述了Android实现图片叠加效果的两种方法。分享给大家供大家参考,具体如下: 效果图: 第一种: 第二种: 第一种是通过canvas画出来的效果: public void first(View v) { // 防止出现Immutable bitmap...
1. android 图像处理系列之一--Bitmap、Drawable 和byte[]之间的相互转换..................................................2 2. android 图像处理系列之二--图片旋转、缩放、反转............................
图片叠加的处理 处理思路是在一张新建画布上分别将两张图片绘制出来 1.首先获取需要两张图片,并转成Bitmap类型 Bitmapbg = ((BitmapDrawable) getResources().getDrawable( R.drawable.background)).getBitmap...
标签可是设置LayerDrawable,一种有层次的Drawable叠加效果,<layer-list> 可以包含多个 标签, 每个 代表一个Drawable。可以通过left、right、top、bottom设置左右上下的偏移量,可以应用一个图片,也可以...
使用layer-list可以将多个drawable按照顺序层叠在一起显示,默认情况下,所有的item中的drawable都会自动根据它附上view的大小而进行缩放, layer-list中的item是按照顺序从下往上叠加的,即先定义的item在下面,...
之前曾写过一篇文章介绍了Android中drawable使用Shape资源,通过定义drawable中的shape资源能够绘制简单的图形效果,如矩形,椭圆形,线形和圆环等。后来我在项目中正好遇到这样一个需求,要在特定的位置上显示一条...
Android开发中,当然可以找美工人员设计图片,然后直接拿进来,不过我们可以自己写代码实现这个效果哈,最常用的的是用layout-list实现图片的叠加,我们这个layout命名为btn_take_photo.xml,这是一个自定义的...
样式资源:progressbar_bg.xml,放在drawable文件夹下: <?xml version=1.0 encoding=utf-8?> <layer-list xmlns:android=http://schemas.android.com/apk/res/android> <!--3个层的顺序即为显示时...
标签可以设置LayerDrawable,一种有层次的Drawable叠加效果,<layer-list> 可以包含多个 标签。这篇文章主要介绍了Android 使用<layer-list>实现微信聊天输入框,需要的朋友可以参考下
Android 5.0中提供了新的Drawable类型VectorDrawable、AnimatedVectorDrawable。VectorDrawable是Android对SVG格式的支持。AnimatedVectorDrawable算是对PropertyAnimation的一个应用。 VectorDrawable 不同于之前的...