2019独角兽企业重金招聘Python工程师标准>>>

layer-list可以将多个图片按照顺序层叠起来。
语法:在drawalbe/drawable-layer.xml中

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@android :color/white" /><item android:drawable="@drawable/logo_overlay" />
</layer-list>

使用方式像其他图片一样:
如在样式中引用:

<resources><style name="LookupTheme" parent="@android :style/Theme.Light.NoTitleBar"><item name="android:windowBackground">@drawable/drawable-layer</item></style>
</resources>

在java代码中引用:
((ImageView) findViewById(R.id.imageview)).setImageDrawable(getResources().getDrawable(R.drawable.drawable-layer)

在代码中实现:

Resources resources = getResources();
Drawable[] layers = new Drawable[2];
layers[0] = r.getDrawable(R.drawable.white);
layers[1] = r.getDrawable(R.drawable.logo_overlay);
LayerDrawable layerDrawable = new LayerDrawable(layers)
((ImageView) findViewById(R.id.imageview)).setImageDrawable(layerDrawable);

再举一个例子:
要用2张图片叠加起来,看上往形成一张图片

首先创建一个drawalbe/login_head.xml的文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<layer-listxmlns:android="http://schemas.android.com/apk/res/android"><item android:id="@+id/user_faceback_drawable" android:drawable="@drawable/faceback" /><item android:id="@+id/user_face_drawable" android:drawable="@drawable/h001" android:left="10.0dip" android:top="18.0dip" android:right="25.0dip" android:bottom="35.0dip" />
</layer-list>

然后就可以使用这个组合的图片了,比如在ImageView中显示:
<ImageView android:id="@+id/faceImg" android:background="@drawable/login_head"
android:layout_width="wrap_content" android:layout_height="wrap_content" />

使用java代码:
如何使多个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即可实现简单的图片合成。

转载于:https://my.oschina.net/u/246578/blog/80225

LayerDrawable层叠样式layer相关推荐

  1. 利用pagespeed插件优化网站css层叠样式文件

    "不务正业"的google最近发布了pagespeed插件和apache 2专有的mod_pagespeed页面优化模块:pagespeed插件目前仅有firefox版的,该插件要 ...

  2. CSS层叠样式选择器归纳

     常用选择器 1.1 类型选择器:用来寻找特定类型的元素  标签 { 声明 } p { color:black; } h1 { font-weight:bold; } 1.2 后代选择器: 选择一个元 ...

  3. css层叠样式的使用,CSS层叠样式表——使用CSS样式的方法

    使用CSS样式的方式 1  HTML 声明标签 1.1  定义和用法 声明必须是HTML文档的第一行,位于标签之前. 声明不是HTML标签,它是指示web浏览器关于页面使用哪个HTML版本进行编写的指 ...

  4. layer弹出层扩展自定义样式

    layer是一款近年来备受青睐的web弹层组件,她具备全方位的解决方案,致力于服务各水平段的开发人员,您的页面会轻松地拥有丰富友好的操作体验. 官网 http://layer.layui.com/ l ...

  5. layui中layer的使用

    layer 至今仍作为 layui 的代表作,它的受众广泛并非偶然,而是这数年来的坚持.不弃的执念,将那些不屑的眼光转化为应得的尊重,不断完善和维护.不断建设和提升社区服务,在 Web 开发者的圈子里 ...

  6. 2022 年最受瞩目的新特性 CSS @layer 到底是个啥?

    步入 2022,CSS 的新特性层出不穷,而最近在 CSS 圈最受瞩目的新特性,非 CSS @layer 莫属. 本文,将用最简洁的语言,快速让读者们搞懂,到底什么是 CSS @layer 新规范. ...

  7. 浅谈CSS重构样式表性能

    什么情况下重构 结合代码的上下文重构代码会更加的容易.所以,如果是修复bug,或者开发新的功能时用到了已有的代码,觉得有可变动的空间,能更好的为项目所用,重构是最好的选择.顺带的重构不至于会把项目搞乱 ...

  8. Web前端一种动态样式语言-- Less

    变量 变量允许我们单独定义一系列通用的样式,然后在需要的时候去调用.所以在做全局样式调整的时候我们可能只需要修改几行代码就可以了. // LESS@color: #4D926F;#header { c ...

  9. 5页面title样式修改_认识html:实现网站页面是这么简单的一回事

    互联网时代人们通过上网浏览信息,打开浏览器上网看到丰富的图文.视频.音乐等多媒体信息,一系列信息反馈和视觉冲击之后,您有没有想过,互联网这么发达的时代,您觉得花一点点时间学会做个网站页面不真香?概念须 ...

最新文章

  1. Thingworx SDK开发自定义Widget
  2. c盘python27文件夹可以删除嘛_电脑C盘那些文件夹可以删除
  3. 浅谈移动端中的视口(viewport)
  4. linux运行jar文件
  5. 十进制转十六进制_汇编语言 输入一位十六进制数,输出其十进制表示
  6. JavaScript——执行环境、变量对象、作用域链
  7. python 哪些项目_哪些Python开源项目比较好
  8. OpenCV:透视变换
  9. VS2017 QT/C++ 调用python函数传图像
  10. 微信小程序码生成时报data format error
  11. 微服务入门到入土(08)-消息队列RabbitMQ
  12. sed替换指定字符串为某变量的值
  13. Go切片(slices)
  14. 网络SSID是什么意思
  15. Vue 项目使用 又拍云 云存储服务
  16. holder.js如何使用
  17. 祖先祖先基因组重建研究
  18. 类似蒲公英的APP打包发布平台
  19. 暗影格斗3服务器响应比预期,暗影格斗3代码问题导致无法正常游戏
  20. 用骈文写一段自我检讨

热门文章

  1. 力扣59-螺旋矩阵(C++)
  2. dlog()是什么意思 matlab语言,Matlab
  3. 小郡肝火锅点餐系统——项目文档
  4. java.net.MalformedURLException: unknown protocol: c 这个错一般有两种原因导致: 1、URL协议、格式或者路径错误,...
  5. 如何选择高速存储、查询数据库
  6. Android 调用系统相机拍照,生命周期重走OnCreate,导致无数据的解决办法
  7. DataTable相关
  8. 诗与远方:无题(三十六)- 素质低下
  9. Kylin开启Kerberos安全认证
  10. python snmp采集交换机信息_网管交换机与非网管交换机的利弊介绍