我想在android中的行分隔符上垂直添加三种颜色或更多颜色。如下图所示,它是蓝色的,但如果我想将其分成三个部分并在其中添加不同的颜色,该怎么办呢?我不想为此制作三个单独的views
。我可以在android中做到吗?
<View
android:background="#00bfff"
android:layout_width = "match_parent"
android:layout_height="5dp"
/>
答案 0 :(得分:2)
是的你可以通过制作一个这样的可绘制文件来实现。并给Backgroung这个drawable观看。
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="0"
android:centerColor="#5F3D5E"
android:endColor="#8F76B0"
android:startColor="#35293D"
android:type="linear" />
<corners android:radius="0dp" />
</shape>
答案 1 :(得分:2)
您可以使用layer-list drawable并将其用作View
背景。
示例:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<solid android:color="#ff0000"/>
</shape>
</item>
<item
android:bottom="5dp">
<shape>
<solid android:color="#00ff00" />
</shape>
</item>
<item
android:bottom="10dp">
<shape>
<solid android:color="#0000ff" />
</shape>
</item>
</layer-list>
示例输出:
编辑:
对于垂直线,您执行@convexHull所说的操作,只需将bottom
替换为right
。
示例:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<solid android:color="#ff0000"/>
</shape>
</item>
<item
android:right="50dp">
<shape>
<solid android:color="#00ff00" />
</shape>
</item>
<item
android:right="100dp">
<shape>
<solid android:color="#0000ff" />
</shape>
</item>
</layer-list>
示例输出:
答案 2 :(得分:0)
解决方案1
创建3个视图并在另一个视图下添加一个
解决方案2
使用3种不同颜色创建一个.png背景并为视图设置背景
答案 3 :(得分:0)
您需要添加渐变颜色才能达到该效果。只需进入drawable目录并添加一个新的.xml资源。然后嵌套以下内容: 选择 项目 形状 梯度。 在渐变标记内添加startcolor,centercolor,end color和angle标记。然后将其设置为视图的背景..我不知道有什么更好的方法可以做到这一点,但会在我做的时候更新
答案 4 :(得分:0)
如果你想要超过3种颜色,那么另一种方式是:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="5dp"
android:weightSum="3">
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/red"/>
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/blue/>
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/green"/>
</LinearLayout>
因此,如果您想要更多颜色,只需更改线性布局的权重并添加另一个视图。