`
xiduxiaoyu
  • 浏览: 159282 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

【转】Android Drawable叠加处理方法

阅读更多

大家可能知道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图片叠加

    android图片叠加,两种方法。canvas和LayerDrawable

    Android编程实现图片背景渐变切换与图层叠加效果

    2.代码中进行图层叠加,即把多个Drawable叠加在一起显示在一个组件之上。 效果图: 代码很简单: (1)布局文件: <RelativeLayout xmlns:android=http://schemas.android.com/apk/res/android xmlns:tools=...

    Android实现图片叠加效果的两种方法

    本文实例讲述了Android实现图片叠加效果的两种方法。分享给大家供大家参考,具体如下: 效果图: 第一种: 第二种: 第一种是通过canvas画出来的效果: public void first(View v) { // 防止出现Immutable bitmap...

    android图片处理总结

    1. android 图像处理系列之一--Bitmap、Drawable 和byte[]之间的相互转换..................................................2 2. android 图像处理系列之二--图片旋转、缩放、反转............................

    Android实现图片叠加功能

    图片叠加的处理 处理思路是在一张新建画布上分别将两张图片绘制出来  1.首先获取需要两张图片,并转成Bitmap类型 Bitmapbg = ((BitmapDrawable) getResources().getDrawable( R.drawable.background)).getBitmap...

    Android 使用layer-list实现微信聊天输入框功能

    标签可是设置LayerDrawable,一种有层次的Drawable叠加效果,<layer-list> 可以包含多个 标签,  每个 代表一个Drawable。可以通过left、right、top、bottom设置左右上下的偏移量,可以应用一个图片,也可以...

    Android中layer-list基本使用详解

    使用layer-list可以将多个drawable按照顺序层叠在一起显示,默认情况下,所有的item中的drawable都会自动根据它附上view的大小而进行缩放, layer-list中的item是按照顺序从下往上叠加的,即先定义的item在下面,...

    Android自定义View实现shape图形绘制

    之前曾写过一篇文章介绍了Android中drawable使用Shape资源,通过定义drawable中的shape资源能够绘制简单的图形效果,如矩形,椭圆形,线形和圆环等。后来我在项目中正好遇到这样一个需求,要在特定的位置上显示一条...

    Android自定义相机界面的实现代码

    Android开发中,当然可以找美工人员设计图片,然后直接拿进来,不过我们可以自己写代码实现这个效果哈,最常用的的是用layout-list实现图片的叠加,我们这个layout命名为btn_take_photo.xml,这是一个自定义的...

    Android编程实现自定义ProgressBar样式示例(背景色及一级、二级进度条颜色)

    样式资源:progressbar_bg.xml,放在drawable文件夹下: <?xml version=1.0 encoding=utf-8?> <layer-list xmlns:android=http://schemas.android.com/apk/res/android> <!--3个层的顺序即为显示时...

    Android 使用<layer-list>实现微信聊天输入框功能

    标签可以设置LayerDrawable,一种有层次的Drawable叠加效果,<layer-list> 可以包含多个 标签。这篇文章主要介绍了Android 使用<layer-list>实现微信聊天输入框,需要的朋友可以参考下

    AnimatedVectorDrawableSample:动画矢量可绘制示例

    Android 5.0中提供了新的Drawable类型VectorDrawable、AnimatedVectorDrawable。VectorDrawable是Android对SVG格式的支持。AnimatedVectorDrawable算是对PropertyAnimation的一个应用。 VectorDrawable 不同于之前的...

Global site tag (gtag.js) - Google Analytics