layer-list使用
- layer-list是做什么用的呢,他有点像FrameLayout的意思,他可以多个Drawable叠起来,默认状态下是从下到上堆叠的。
- layer-list标签是item标签,drawable就写在item标签下,item标签常用的属性有 top right bottom和left来控制item距离边界的距离,比如android:bottom="10dp" 表示该item下边界往里缩了10dp。
好吧,首先在drawable文件夹下新建一个drawable res文件
举个例子:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="0dp"
android:left="-2dp"
android:right="-2dp"
android:top="-2dp">
<shape android:shape="rectangle">
<stroke
android:width="2dp"
android:color="@color/colorPrimary"></stroke>
<padding android:bottom="2dp"></padding>
</shape>
</item>
</layer-list>
这是我写了一个edittext的背景drawable,如果我们把edtitext的background换成我们写的
<EditText
android:id="@+id/et"
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="@drawable/et_backound_shape" />
看一下效果:
图片.png
嗯 very low 但是效果出来了 好的 我们再来写一个 ,其他代码不动 只改变他的颜色
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="0dp"
android:left="-2dp"
android:right="-2dp"
android:top="-2dp">
<shape android:shape="rectangle">
<stroke
android:width="2dp"
android:color="@color/colorAccent"></stroke>
<padding android:bottom="2dp"></padding>
</shape>
</item>
</layer-list>
然后,我们写一个selector,让他在获取焦点的时候改变一下颜色:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
// <item android:drawable="@drawable/et_unenable_shape" android:state_enabled="false"></item>
<item android:drawable="@drawable/et_selected_shape" android:state_focused="true"></item>
<item android:drawable="@drawable/et_unselected_shape" android:state_focused="false"></item>
</selector>
把edittext的背景改成这个selector android:background="@drawable/et_selector"
然后看一下效果
QQ截图20190331233752.png
哈哈 这是两种不同状态下的效果 ,小伙伴可以自己去写背景哦,layer-list里的item实际上是一个边框,但是layer-list他把左 上 右往外挪了,所以现在只有下边有边框了。
好吧,本来还想写一个ripper实现水波纹效果的,明天再写吧