我试图创建一个drawable作为我的一个布局的背景,并且不能让它显示两个分开在中间的纯色。
目前,我尝试使用背景为实色的图层列表,以及半透明白色矩形的叠加层,以沿着矩形的上半部分对原始纯色背景颜色进行着色。尽管如此,它并不需要这样做。
除非您能找到立即转换的方法,否则渐变将无效。
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<size android:height="@dimen/basic_runners_height"></size>
<solid android:color="@color/brb_orange"
android:gravity="bottom"></solid>
</shape>
</item>
<item>
<shape android:shape="rectangle">
<size android:height="@dimen/basic_runners_height_halved"></size>
<solid android:color="@color/md_white_1000"
android:alpha="127"
android:gravity="top"></solid>
</shape>
</item>
所以,我对此的理解是应该有两种形状,一种是另一种形状的一半。第一个形状覆盖整个可绘制的橙色,另一个是白色,约50%透明(α= 127),占据可绘制的一半并向顶部倾斜。
drawable的预览是全白的,没有一丝橙色。我做错了什么?
编辑:
是的,为了使这更简单,我已经将有色的颜色添加到我的@color中,这样我就不用担心透明度了。 XML如下所示:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:top="@dimen/basic_runners_height_halved">
<shape android:shape="rectangle" >
<size android:height="@dimen/basic_runners_height_halved" />
<solid android:color="@color/brb_orange_tint" />
</shape>
</item>
<item android:top="@dimen/basic_runners_height">
<shape android:shape="rectangle" >
<size android:height="@dimen/basic_runners_height" />
<solid android:color="@color/brb_orange" />
</shape>
</item>
但是这甚至没有做到这一点...... runners_height_halved是runners_height的dp的一半,但是这并没有将它分成中间。也许10%的可绘制颜色是有色颜色,并且由于某种原因它们被颠倒以使着色颜色位于底部。这应该是最简单的事情......
答案 0 :(得分:0)
尝试在<item>
标记中使用填充(顶部,左侧,右侧,底部)。希望它有所帮助
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<size android:height="@dimen/basic_runners_height"></size>
<solid android:color="@color/brb_orange"
android:gravity="bottom"></solid>
</shape>
</item>
<item android:top="10dp"
android:left="10dp"
android:right="10dp"
android:bottom="10dp">
<shape android:shape="rectangle">
<size android:height="@dimen/basic_runners_height_halved"></size>
<solid android:color="@color/md_white_1000"
android:alpha="127"
android:gravity="top"></solid>
</shape>
</item>