Android中的行分隔符上的不同颜色

时间:2017-06-16 06:59:45

标签: android

我想在android中的行分隔符上垂直添加三种颜色或更多颜色。如下图所示,它是蓝色的,但如果我想将其分成三个部分并在其中添加不同的颜色,该怎么办呢?我不想为此制作三个单独的views。我可以在android中做到吗?

<View 
      android:background="#00bfff" 
      android:layout_width = "match_parent" 
      android:layout_height="5dp"
/>

enter image description here

5 个答案:

答案 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>

示例输出:

layer list example

编辑:

对于垂直线,您执行@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>

示例输出:

vertical lines

答案 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>

因此,如果您想要更多颜色,只需更改线性布局的权重并添加另一个视图。