我要做的是定义一个在LinearLayout中使用的常用背景,它在我的许多活动中经常使用我的应用程序。此特定布局是显示在每个活动顶部的标题。
我要做的是创建一个drawable,用渐变填充linearlayout并在渐变下方有一条水平线。
有没有人知道这是否可行,或者我是否必须使用嵌套布局来做这类事情。
我对drawable xml的尝试是
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:startColor="#AA000000" android:endColor="#AA333333"
android:angle="270" />
</shape>
</item>
<item>
<shape android:shape="line">
<stroke android:width="3dp" android:color="#FFFFFFFF"
android:dashWidth="1dp" android:dashGap="2dp" />
<size android:height="5dp" />
</shape>
</item>
</selector>
答案 0 :(得分:32)
Drawable接受多个形状,(总是在其他文件中定义)如果我理解你的问题,也许你可以做一个Layer drawable(这会在底层绘制多个底层的drawable)
我在这里写这个,所以,我没有测试过,但试试这个并阅读这篇精彩的文档。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_7"/>
<item android:drawable="@drawable/shape_1"/>
</layer-list>
the android complete xml resources
欢呼声
答案 1 :(得分:3)
使用重力在图层列表中设置项。
for vertical orientation use: android:gravity="top" android:gravity="center" android:gravity="bottom"
for horizontal orientation use: android:gravity="left" android:gravity="center" android:gravity="right"
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap
android:src="@drawable/top_img"
android:gravity="top"/>
</item>
<item>
<bitmap
android:src="@drawable/center_img"
android:gravity="center"/>
</item>
<item>
<bitmap
android:src="@drawable/bottom_img"
android:gravity="bottom"/>
</item>
</layer-list>
确保父元素有足够的空间容纳所有项目! 否则它们会相互重叠