我想实现这种风格
正如你所看到的,我的背景应用程序是一个纹理,所以我需要一个透明的背景,并在视图的底部只有几个像素的渐变颜色。
我只是用它来描述我的EditText背景
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">>
<item
android:gravity="bottom"
android:height="2dp"
android:drawable="@drawable/my_gradient">
</item>
</layer-list>
它适用于Android 6.0和Android M Preview,但不适用于#34;旧版本&#34;作为Android 5.1.1
我无法理解为什么我的引力属性没有被应用
答案 0 :(得分:1)
似乎LayerDrawable
个孩子的重力(和大小)属性是最近的,LayerDrawable.setLayerGravity()表示
在API级别23中添加。
编辑:至于解决方案,这是我能想到的:
使用九个补丁作为背景,透明的垂直可扩展部分
将不需要的渐变部分覆盖为另一种形状,与背景颜色相同(显然需要不透明)
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/my_gradient" />
<item android:bottom="2dp">
<shape>
<solid android:color="background color" />
</shape>
</item>
</layer-list>
使用View
保持渐变。根据{{1}}在布局中的使用方式,可能也需要添加EditText
,例如:
Framelayout