1

レイアウトの背景として使用できるカスタム形状を描画しようとしています。しかし、私はそうすることができません。Androidでxmlを使用して以下のような形状を描くことは可能ですか. 長方形の垂直方向の中心から半円の形状を切り取る方法がわかりません。

ここに画像の説明を入力

4

7 に答える 7

1

以下のxmlを試してください。ドローアブルに保存します。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<corners
android:topLeftRadius="15dp"
android:topRightRadius="15dp"
android:bottomLeftRadius="5dp"
android:bottomRightRadius="5dp"
/>
<solid
android:color="#ffffff"
/>
<padding
android:left="0dp"
android:top="0dp"
android:right="0dp"
android:bottom="0dp"
/>

<stroke
android:width="1dp"
android:color="#000000"
/>
</shape>
于 2016-10-18T07:29:33.137 に答える
1

あなたの場合、サイズ変更可能なビットマップ(9-Patch drawable )を作成する価値があるかもしれません。このガイドに従ってください。

于 2016-10-18T07:29:43.370 に答える
0

9-Patch イメージを使用することをお勧めします。上記のような画像を作成できる場合は、https://romannurik.github.io/AndroidAssetStudio/nine-patches.htmlを使用して 9 パッチの画像を作成できます (拡張可能領域を定義します)。

于 2016-10-18T07:38:10.747 に答える
0

以下の xml を参照してください。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@android:color/black" />
        </shape>
    </item>
    <item
        android:bottom="10dp"
        android:left="10dp"
        android:right="10dp"
        android:top="10dp">
        <shape android:shape="rectangle">
            <size
                android:width="200dp"
                android:height="200dp" />
            <solid android:color="@color/colorAccent" />
            <corners android:radius="5dp" />
        </shape>
    </item>
    <item>
        <shape android:shape="line">
            <solid android:color="@android:color/black" />
            <stroke android:width="1dp"
                android:dashWidth="10px"
                android:dashGap="10px"/>
        </shape>
    </item>
    <item
        android:bottom="103dp"
        android:left="-10dp"
        android:right="205dp"
        android:top="103dp">
        <shape android:shape="oval">
            <size
                android:width="3dp"
                android:height="3dp" />
            <solid android:color="@android:color/black" />
            <stroke android:width="1dp" />
        </shape>
    </item>

    <item
        android:bottom="103dp"
        android:left="205dp"
        android:right="-10dp"
        android:top="103dp">
        <shape android:shape="oval">
            <size
                android:width="3dp"
                android:height="3dp" />
            <solid android:color="@android:color/black" />
            <stroke android:width="1dp" />
        </shape>
    </item>
</layer-list>
于 2016-10-18T09:07:55.923 に答える
0

以下のコードを試してください

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

        <solid android:color="#FFFFFF" />
        <corners android:radius="3dip" />
        <stroke
            android:width="1dp"
            android:color="#ED2A3C" /> 
    </shape> 
于 2016-10-18T09:25:33.277 に答える