1箇所だけ角丸のViewを作る
角丸のViewを作りたい場合は、以下のようなxmlを用意して対象のViewのBackgrounに指定することで実現できます。
<?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>
それを↑の画像のように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-list
でitem
を重ねて表示させます。
1つ目のitem
が4箇所とも角丸の定義です。
2つ目のitem
で右側に30dpパディング幅を持たせた、最初のitem
と同一色の長方形を重ねます。これにより右半分だけが角丸になります。
さらに3つ目のitem
で上側に30dpパディング幅を持たせた長方形を重ねることで右下部分の角まるを上書きます。
上記のように3つのitem
を重ねることで1箇所だけ角丸のViewを実現することが可能です。