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

layer-list中的item是按照顺序从下往上叠加的,即先定义的item在下面,后面的依次往上面叠放

例子

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" ><item ><shape android:shape="rectangle" ><solid android:color="#0000ff"/></shape></item><item android:bottom="25dp" android:top="25dp" android:left="25dp" android:right="25dp"><shape android:shape="rectangle" ><solid android:color="#00ff00" /></shape></item><item android:bottom="50dp" android:top="50dp" android:left="50dp" android:right="50dp"><shape android:shape="rectangle" ><solid android:color="#ff0000" /></shape></item>
</layer-list>

布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><ImageViewandroid:layout_width="150dp"android:layout_height="150dp" android:background="@drawable/layer_list"/>
</LinearLayout>

效果图

红色item最后定义在最上方,绿色item中间,最先定义蓝色最下边

这里设置了android:bottom="50dp" android:top="50dp" android:left="50dp" android:right="50dp"属性
android:top="50dp";表示该item上边以ImageView上边界往里面缩了50dp
android:bottom="50dp"表示该item下边以ImageView下边界往里面缩了50dp
android:left="50dp";表示该item左边以ImageView左边界往里面缩了50dp
android:right="50dp";表示该item右边以ImageView右边界往里面缩了50dp

android:bottom="25dp" android:top="25dp" android:left="25dp" android:right="25dp"类似

layer-list给指定view实现三面边框

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" ><item ><shape android:shape="rectangle" ><solid android:color="#ff0000"/></shape></item><item android:bottom="2dp" android:top="2dp"  android:right="2dp"><shape android:shape="rectangle" ><solid android:color="#ffffff" /></shape></item></layer-list>

布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><LinearLayoutandroid:layout_width="150dp"android:layout_height="50dp"android:background="@drawable/border"android:layout_gravity="center"android:orientation="vertical"></LinearLayout>
</LinearLayout>

效果图

实现带阴影的按钮效果:

代码:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_pressed="true"><!-- 灰色阴影 --><layer-list> <itemandroid:left="2dp"android:top="4dp"><shape><solid android:color="@android:color/darker_gray" /><corners android:radius="4dp" /></shape></item><!-- 红色前景 --><itemandroid:bottom="4dp"android:right="2dp"><shape><solid android:color="#FF0000" /><corners android:radius="4dp" /></shape></item></layer-list></item><item><!-- 灰色阴影 --><layer-list> <itemandroid:left="2dp"android:top="4dp"><shape><solid android:color="@android:color/darker_gray" /><corners android:radius="4dp" /></shape></item><!-- 白色前景 --><itemandroid:bottom="4dp"android:right="2dp"><shape><solid android:color="#FFFFFF" /><corners android:radius="4dp" /></shape></item></layer-list></item>
</selector>

<END>

layer-list:Android中layer-list使用详解相关推荐

  1. android studio parcelable,Android中Parcelable的使用详解

    Parcelable与Serializable Serializable是Java为我们提供的一个标准化的序列化接口. Parcelable是Android为我们提供的序列化的接口. 对比: 1.Pa ...

  2. Android中的四大组件详解

    Android中的四大组件详解 我们都知道Android系统应用层框架中,为开发者提供了四大组件来便于应用的开发,它们是Activity.Service.BroadcastReceiver.Conte ...

  3. RxJava操作符在android中的使用场景详解(一)

    转载请注明出处:http://www.wangxinarhat.com/2016/04/19/2016-04-19-rxjava-android-operate1/ 最近学习了RxJava在andro ...

  4. Android中图片压缩方案详解

    如感觉排版不舒服,可移步至此处查看 图片的展示可以说在我们任何一个应用中都避免不了,可是大量的图片就会出现很多的问题,比如加载大图片或者多图时的OOM问题,可以移步到Android高效加载大图.多图避 ...

  5. Android中LayoutParams类精炼详解

    一.前期基础知识储备 首先看几个使用LayoutParams的实例: 1.<Android开发艺术探索>第8章,Java代码中动态设置按钮时 通过LayoutParams参数设置按钮位置x ...

  6. Android中R.java文件详解

    R.java文件有两种,两种文件作用一样都是获取资源的引用,区别在于一个存放着我们写的项目中资源的引用,另一个存放着系统定义好的一些资源 1.1 项目的R.java文件 先说第一种是项目编译出来的R. ...

  7. Android中AIDL的使用详解

    Git: https://github.com/whtchl/AidlTemplate AIDL用来做什么 AIDL是Android中IPC(Inter-Process Communication)方 ...

  8. Android 中ContentProvider和Uri详解

    一.使用ContentProvider(内容提供者)共享数据 ContentProvider在android中的作用是对外共享数据,也就是说你可以通过ContentProvider把应用中的数据共享给 ...

  9. android token机制_对Android 中的 ANR 进行详解

    前言 关于ANR,以前只知道Activity.BroadCastReceiver.Service三种组件的ANR时限.一般采用哪些方式避免ANR.以及通过data/anr/traces.txt去分析A ...

  10. Android中的广播Broadcast详解

    今天来看一下Android中的广播机制,我们知道广播Broadcast是Android中的四大组件之一,可见他的重要性了,当然它的用途也很大的,比如一些系统的广播:电量低.开机.锁屏等一些操作都会发送 ...

最新文章

  1. centos6.4安装mysql的过程中出现的bug
  2. A JWT old for new exchange schema
  3. UI基本控键UIView ,UILabel,UITextField ,UIButton,UIAlertView
  4. 可用性测试(用户体验)测试
  5. Categories
  6. C++ vector简单demo
  7. java和jsp交互 structs_Struts与jsp+javabean+servlet区别
  8. 实习成长之路:设计模式二:接口vs抽象类的区别?如何用普通的类模拟抽象类和接口?
  9. 从零开始研发GPS接收机连载——3、用HackRF软件无线电平台作为GPS模拟器
  10. x64技术之SSDT_Hook
  11. 百度竞价关键词选词技巧
  12. 125KHz 100cm ID 读卡电路_二维码门禁读卡器动态二维码扫描器二维码刷卡读头介绍...
  13. educoder 数据库原理与应用 实验六 约束与索引
  14. 关于nomogram核心函数的time.inc函数的设定
  15. 500篇干货解读人工智能新时代
  16. CF1139C Edgy TreesDFS求连通块大小、思维
  17. execute(),executeQuery(),executeUpdate()和executeBatch()的使用与区别
  18. Android源码编译遇到Java虚拟机内存不够等相关Jack问题,解决方法
  19. JAVA读取注册表中的值
  20. python儿童宣传-为什么让孩子学Python会这么火?

热门文章

  1. php多选框怎么传值,php多选框表单checkbox参数传递的问题解析
  2. SAP QM初阶之事务代码CR05查询QM Work Center List
  3. SAP PM 初级系列26 - 设备功能位置的Document
  4. 十张图说明机器学习在S/4中的应用
  5. 观点 | 朱靖波:辅助翻译技术需「以人为本」
  6. Resnet对应于ImageNet的结构框架
  7. Kubernetes 整体架构图
  8. 密码危机:深度学习正在加速密码破解!
  9. 深入理解Pytorch之register_buffer
  10. 使用Fair kripke来判断kripke的可达性和可避免性