幸福なプログラマ

プログラマは幸福になれる。

1箇所だけ角丸のViewを作る

角丸のViewを作りたい場合は、以下のようなxmlを用意して対象のViewBackgrounに指定することで実現できます。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <solid
        android:color="#fff" >
    </solid>
    <corners
        android:radius="30dp" /><!-- 角の丸みを調節 -->
</shape>

 
kadomaru
それを↑の画像のように1箇所だけ角丸にしたい場合は、以下のような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="#fff" >
            </solid>
            <corners
                android:radius="30dp" />
        </shape>
    </item>
    <item
        android:right="30dp">
        <shape
            android:shape="rectangle" >
            <solid
                android:color="#fff" >
            </solid>
        </shape>
    </item>
    <item
        android:top="30dp">
        <shape
            android:shape="rectangle" >
            <solid
                android:color="#fff" >
            </solid>
        </shape>
    </item>
</layer-list>

layer-listitemを重ねて表示させます。
1つ目のitemが4箇所とも角丸の定義です。
2つ目のitemで右側に30dpパディング幅を持たせた、最初のitemと同一色の長方形を重ねます。これにより右半分だけが角丸になります。
さらに3つ目のitemで上側に30dpパディング幅を持たせた長方形を重ねることで右下部分の角まるを上書きます。
上記のように3つのitemを重ねることで1箇所だけ角丸のViewを実現することが可能です。