2010-12-10 16 views
2

こんにちは私は3つの矩形を持つ図形を描こうとしています: 1.ソリッドカラー2.グラデーション3.ホワイトラインどのようにすればいいですか?これを試してみると、うまくいきません。レイアウトには親の色があります。android sdkのネストされた図形

<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" 
    android:height="60px" 
    > 
    <shape 
     android:shape="rectangle" 
     android:height="30px" 
     > 
     <solid 
      android:color="#ff297baf" 
      /> 
    </shape> 
    <shape 
     android:shape="rectangle" 
     android:height="30px" 
     > 
     <gradient 
    android:type="linear" 
    android:startColor="#ff297baf" 
    android:endColor="#ff16c0e3" 
    android:angle="270"/> 
    </shape> 
    <shape 
     android:shape="rectangle" 
     android:height="3px" 
     > 
     <solid 
      android:color="#FFFFFFFF" 
      /> 
    </shape> 
</shape> 

3色のグラデーションを作成しようとしています。 #ff297bafを60%で開始し、勾配を#ff297bafから#ff16c0e3まで開始し、最後にwhile行を追加します。

+0

現在地多く、より多くの情報を提供する必要があります。あなたはこれまでに試しているもののサンプルコードを持っていますか?なぜあなたは単色とグラデーションが必要ですか?透明なグラデーションオーバーレイですか?白い線、それはアウトラインですか?それは形の中に入るべきですか? – kcoppock

+0

質問にあなたのコメントを追加して、少し書式を設定してください。 –

+0

透明でないオーバーレイです。白い線はアウトラインです。通常、私はHTMLでこれを行います: "border-bottom:solid 2px white"。それは内部で行う必要はありませんが、私はビュー上に他の形を得ることはできません。コンパイラはがrootであると訴えています。 – dropsOfJupiter

答えて

8

複数の図形を使用する場合は、LayerListDrawableを試す必要があります。このようなものは私のために働くが、あなたの例の高さは60pxに過ぎない。あなたは正確にあなたのニーズに合わせてそれを変更する必要がありますが、これはあなたに良いスタートを取得する必要があります:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item> 
    <shape android:shape="rectangle"> 
     <gradient 
      android:angle="270" 
      android:endColor="#ff16c0e3" 
      android:startColor="#ff297baf" 
      android:type="linear" /> 
    </shape> 
</item> 
<item android:top="57px"> 
    <shape android:shape="rectangle"> 
     <solid android:color="#FFFFFFFF" /> 
     <size android:height="3px" /> 
    </shape> 
</item> 

+0

これは間違いなく機能しました!どうもありがとうございました! – dropsOfJupiter

関連する問題