但是,在这个demo里,都没有用到任何实际的图片资源,都是用shape、selector,以及本篇要讲解的layer-list完成的。 > </item> <item> <layer-list> <! ><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <! > 从上面的示例代码可以看到,layer-list可以作为根节点,也可以作为selector中item的子节点。 结尾 layer-list篇就讲到这里了,示例代码也已经更新放上github,地址: https://github.com/keeganlee/kstyle.git
> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android <corners android:topRightRadius="3dp" android:topLeftRadius="3dp" /> </shape> </item> </layer-list 如果你不喜欢卡片布局CardView,那么也许使用layer-list 是一个很不错的选择。 其他 关于布局中的其他配置可以参考下面的内容。
所以我弃用了这个方案,改用了layer-list使用视图层叠的方式实现,最后将其设置为背景图即可。 代码如下: <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <! android:color="#FFFFFF" /> <corners android:radius="5dp" /> </shape> </item> </layer-list
Android XML 绘图: Android中xml中shape的属性助记 android shape.xml 属性详解与实战运用 ---- Android Layer: Android中的图层样式layer-list > <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id=" android:left="10.0dip" android:top="18.0dip" android:right="25.0dip" android:bottom="35.0dip" /> </layer-list > <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id=" android:left="10.0dip" android:top="18.0dip" android:right="25.0dip" android:bottom="35.0dip" /> </layer-list
android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <layer-list <corners android:radius="8dp" /> </shape> </item> </layer-list > </item> <item android:state_focused="true"> <layer-list> <item android > </item> <item> <layer-list> <item> <shape> <corners android:radius="8dp"/> </shape> </item> </layer-list
> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <rotate <solid android:color="#ffffff" /> </shape> </rotate> </item> </layer-list > <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <rotate > <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <rotate > <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <rotate
步骤: 1.布局文件 2.自定义的layer-list样式文件starsstyle 要求:两张图 3.在style文件中创建一个样式,并在第一步中使用 出现的问题: 直接报错 RatingBarstyle" android:layout_width="wrap_content" android:layout_height="wrap_content" /> layer-list 样式文件 <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android <item android:id="@android:id/progress" android:drawable="@drawable/ic_action_name"/> </layer-list
="wrap_content" android:src="@drawable/bitmap" /> ---- Shape android的样式主要则是通过shape、selector、layer-list 使用layer-list可以将多个drawable按照顺序层叠在一起显示,像上图中的Tab,是由一个红色的层加一个白色的层叠在一起显示的结果,阴影的圆角矩形则是由一个灰色的圆角矩形叠加上一个白色的圆角矩形 > bg_tab_unselected.xml <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> > item> <item> <layer-list> <item> <color android: layer-list可以添加多个item子节点,每个item子节点对应一个drawable资源,按照item从上到下的顺序叠加在一起,再通过设置每个item的偏移量就可以看到阴影等效果了 layer-list
android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true"> <layer-list android:bottom="5dp"> <color android:color="#fff" /> </item> </layer-list > </item> <item android:state_checked="false"> <layer-list> <item> item android:bottom="2dp"> <color android:color="#fff"/> </item> </layer-list > </item> 我们的selector中有两个item,内部分别采用layer-list实现图层的叠加,然后顶部item填充的时候留白,即实现出底部的颜色线条 2 根据状态不同selector
思路 使用 layer-list 来实现。 layer-list 可以包含多个item,每个item堆叠在一起。 layer-list 的item可以设置 间距,使用 android:bottom 这样的属性来实现。 具体做法: 1.先绘制第一条线。 > <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android 2px" /> <solid android:color="@android:color/white" /> </shape> </item> </layer-list
PS:很多人都有过这样的经历,想要在自己写的程序里,上传一张随便大小形状的照片在程序里显示都是圆形照片,或者是方形,或者是三角形,但是写代码又非常麻烦,这里就有一个也可以实现一样效果的方法,那就是用layer-list > <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <! 裸露出将来设置的背景图片 --> <gradient android:centerColor="#0000" /> </shape> </item> </layer-list
> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <! "> <shape> <solid android:color="@color/white"/> </shape> </item> </layer-list
> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque" <bitmap android:src="@drawable/ic_logo" android:gravity="center"/> </item> </layer-list > 我们使用 layer-list 标签创建一个图层列表,实际就是一个 LayerDrawable ,设置一个背景,然后放上应用图标,这是我想展示的启动页,可以根据自己的需要自行定义。
分析Android的采用layer-list效果实现圆角 阴影 背景 <?xml version="1.0" encoding="utf-8"? > <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <! -> <stroke android:width="1dp" android:color="#000000"/> </shape> </item> </layer-list
Android 开发中,遇到需要设置边框的情景,使用背景图来实现,代码如下: <layer-list xmlns:android="http://schemas.android.com/apk/res/ 白色 --> <shape> <solid android:color="#ffffff" /> </shape> </item> </layer-list
标签只能应用在中对整个背景进行渐变,怎么能利用这个能力来实现一个渐变的边框呢 layer-list闪亮登场 layer-list 类似 PS 里面的图层的概念,我们可以使用多个图层叠加来实现一些特殊的效果 > <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape> > <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape> > 这样效果就出来了 layer-list 的用法 一个定义一系列图层,每个图层用一个表示。 > <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape>
但是不能直接使用,因为这样改变不了长度,我们需要使用layer-list留出间隙: <?xml version="1.0" encoding="utf-8"? > <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable 8_43a5f3" android:height="3dp" android:left="15dp" android:right="15dp"/> </layer-list 所以要使用layer-list。 最后将这个layer-list设置为tab的Indicator即可: app:tabIndicator="@drawable/tab_indicator_blue_short" 这里有一个小坑,仅仅设置
> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:width="1dp" android:color="#505050"/> </shape> </item> </layer-list > <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:width="1dp" android:color="#505050"/> </shape> </item> </layer-list
> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android <solid android:color="@color/color_f27fa7"/> </shape> </clip> </item> </layer-list
方法二:使用 XML 绘制静态进度条 创建一个 layer-list: 在 drawable 资源文件夹中创建一个 XML 文件定义进度条的样式。 这个 layer-list 包含两层:一层是背景,另一层是前景(实际显示的进度)。 <?xml version="1.0" encoding="utf-8"? > <layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com <corners android:radius="10px" /> </shape> </clip> </item> </layer-list