2017-06-16 11 views
0

アンドロイドの行区切りに3色以上を縦に追加したいと考えています。次の図に示すように青色ですが、3つのセクションに分けて異なる色を追加したい場合はどうなりますか?私はこのために3つの別々のviewsを作りたいとは思わない。私はアンドロイドでそれをすることはできますか?Androidの行区切り文字の色が異なる

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

enter image description here

+1

9パッチ描画可能を使用 – pskink

+0

画像を背景として使用することもできます –

+0

@VivekMishraいいえ画像を追加しません。 – Amar

答えて

0

溶液1

3ビューを作成し、別の

ソリューションの下を追加2

作成し、3つの異なる色を有するものの.png背景とあなたのビューの背景を設定する

2

はいこのように1つのドロウアブルファイルを作成すると、これを行うことができます。 Backgroungにこのドロアブルを見せてください。

<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> 
+0

4色を追加したいのですが? – Amar

+0

私は3色がグラデーションの限界だと思います。この方法では4色を追加できません。 –

+0

あなたの方法は機能しません。 – Amar

0

この効果を得るには、グラデーションカラーを追加する必要があります。 drawableディレクトリに移動し、新しい.xmlリソースを追加してください。次に、次をネストします。 セレクタ アイテム 形状 グラデーション。 グラデーションタグにstartcolor、centercolor、end color、angleタグを追加します。その後、ビューの背景として設定します。私はこれを行うためのよりよい方法はわかりませんが、私が行ったときに更新されます

+0

この方法は色範囲に制限されていますか? (2,3色) – Amar

+0

はいです。最後に、最大3色に制限されていることを確認しました。複数のビューとは異なり、きれいに切り取られないようにグラデーションを作成します。 –

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が言ったことをやるだけrightbottomを交換してください。

例:

<?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

+0

これらのカラーラインは水平です。これらのカラーラインが垂直に必要な場合はどうすればいいですか? – Amar

+1

これは正解です。縦のカラーラインは、 'android:bottom'を 'android:right'に変更することで行うことができます – convexHull

+0

@Amar私は自分の答えを編集しました。 – torque203

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> 

を、線形レイアウトの重みを変更し、別のビューを追加するだけです。

関連する問題