2012-04-16 31 views
5

トップラインのない矩形を描画するxmlシェイプドローブラブルを作成する必要があります(「uフォーム」)。ライン可能であれば、私はトップ(または下)なしで同じ形状を定義することができます -Android xml shape drawable - Uフォームを描画する方法は?

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" > 

<solid android:color="@color/detailrow_bg_normal" /> 

<corners 
    android:bottomLeftRadius="0dp" 
    android:bottomRightRadius="0dp" 
    android:radius="1dp" 
    android:topLeftRadius="10dp" 
    android:topRightRadius="10dp" /> 

<padding 
    android:bottom="2dip" 
    android:left="1.5dip" 
    android:right="1.5dip" 
    android:top="8dip" /> 

<stroke 
    android:width="1dip" 
    android:color="@color/detailtable_border" /> 

しかし、どのように:私は何をすることができる午前はそうのように、四角形を描画しているのですか?

答えて

10

レイヤーリストを使用してみることもできます。このような何かがうまくいくかどうかを確認してください:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <shape android:shape="rectangle"> 
      <solid android:color="@color/detailtable_border" /> 
     </shape> 
    </item> 

    <item android:left="1.5dp" android:right="1.5dp" android:bottom="2dp"> 
     <shape android:shape="rectangle"> 
     <solid android:color="@color/detailrow_bg_normal" /> 
     </shape> 
    </item> 
</layer-list> 

は、この後、境界線の色で矩形を塗りつぶし(必要があります)左/右/下の境界線の色を示すのに適切な量を残して、デフォルトの背景色でそれを重ねます。

+2

優秀:その盲目をした:)。それが助けてくれてうれしかった。 – Femi

0

2つの図形とLayerListを使用してこれを実現できるかもしれませんが、より良い解決策であり、NinePatch描画可能な方が使いやすいと思います。

+0

それについて考えましたが、すでに実装されているソリューションにかなりの変更が必要です。私は本当にXMLの形を好むでしょう)。 – Bachi

2

すると、このコードを試してみても、このlinkを参照してください:::

私はこの1つで良い解決策を達成:

<?xml version="1.0" encoding="utf-8"?> 

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<!-- This is the line --> 
    <item android:top="-1dp" android:right="-1dp" android:left="-1dp"> 
     <shape> 
      <solid android:color="@android:color/transparent" /> 
      <stroke android:width="1dp" android:color="#ffffff" /> 
     </shape> 
    </item> 

</layer-list> 

をこれはあなたが透明色が、まだオープンストロークを必要とする場合に適していますカラー(私の場合、私は一番下のラインしか必要としませんでした)。背景色が必要な場合は、上記の回答と同様にソリッドシェイプの色を追加できます。

+0

それは動作しなければならない –

関連する問題