2011-06-28 5 views
7

外側の四角形と内側の角を持つレイアウト境界線を作成しようとしています。ストローク幅と角の半径を持つ唯一のストローク幅を持つ別::私は、私は2つの形状で構成XML描画可能な定義を作成する必要があることを収集した内側の角が丸い正方形のレイアウト境界

ドロワブル/

round_border.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <stroke android:width="4dp" android:color="#FF000000" /> 
    <padding android:left="7dp" android:top="7dp" 
      android:right="7dp" android:bottom="7dp" /> 
    <corners android:radius="4dp" /> 
    <solid android:color="#FFC0C0C0" /> 
</shape> 

independantly国境ときappliedby自体それほどなどsquare_border.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <stroke android:width="2dp" android:color="#FF000000" /> 
    <solid android:color="#FFC0C0C0" /> 
</shape> 

これらの作品のそれぞれを:

アンドロイド:背景= "描画可能/ round_border @" しかし、彼らはいずれかまたは両方がそうのような項目リストの描画可能に追加されます。

composite_border.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <layer-list> 
     <item android:drawable="@drawable/round_border"/> 
     <!-- <item android:drawable="@drawable/square_border"/> --> 
    </layer-list> 
</shape> 

と:

android:background = "@ drawable/composite_border"

レイアウトの背景は、黒い境界ではなく完全に黒です。このタスクのレイヤリストの作成方法を知っている人は誰ですか?

+0

感謝! – cV2

答えて

2

square_border.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <stroke android:width="2dp" 
      android:color="#FF000000" 
    /> 
    <solid android:color="#FFC0C0C0" /> 
</shape> 

composite_border.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <layer-list> 
     <item android:drawable="@drawable/round_border"/> 
     <!-- <item android:drawable="@drawable/square_border"/> --> 
    </layer-list> 
</shape> 

コメントや引用符を見て!あなたは、私が層の内側にあなたの項目の順序を変更し、この

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:drawable="@drawable/square_border"/> 
    <item android:drawable="@drawable/round_border"/> 
</layer-list> 

ノートのようなあなたのcomposite_border.xmlを定義する必要がありますので、その形状は内側階層リストを持つことができません見ることができますShape Drawable Docから=]

+0

ありがとうございました - 投稿を修正しました。 – jchristof

+0

ありがとう - まだ答えを探しています。 – jchristof

4

-list層-リスト
Each drawable in the list is drawn in the order of the list—the last drawable in the list is drawn on top
のマニュアルには記載し、あなたが望むように、外

0

から乗されるように、これは罰金十分に動作します試してみてください。

solid背景色

strokeある国境

<?xml version="1.0" encoding="utf-8"?> 
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <solid 
     android:color="@color/white"/> 
    <stroke android:width="1dp" android:color="#ffaaaaaa" /> 
    <size 
     android:width="15dp" 
     android:height="15dp"/> 
</shape> 
2

は、XMLファイルを作成している

round_backgroundのような。XML

<?xml version="1.0" encoding="utf-8"?> 
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="oval"> 
    <solid 
     android:color="#CCCC33"/> 
    <size 
     android:width="35dp" 
     android:height="35dp"/> 
</shape> 

背景として設定したレイアウトでこれを共有するための

<LinearLayout 
       android:id="@+id/layout_wellbeing" 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:background="@drawable/rounded_corner_leuvan" 
       android:orientation="horizontal" > 
</LinearLayout>