shape 例
パディングは、下記の例で、赤いボーダーラインと内側のコンテンツとの間の隙間に相当します。赤いボーダーラインと周りのコンテンツとの間の隙間(マージン)を指定するにはmarginを指定します。
<padding
android:left="5dp"
android:right="5dp"
android:top="5dp"
android:bottom="5dp"/>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- タップされてないときの設定 -->
<item android:state_pressed="false">
<layer-list >
<!-- 枠線付き長方形 -->
<item>
<shape android:shape="rectangle">
<solid android:color="#C1C1C1"/>
<stroke android:width="2dp" android:color="#999999" />
<corners android:radius="6dp" />
</shape>
</item>
<!-- 2dp分の padding を設定した枠線なし長方形 -->
<item android:bottom="2dp" android:right="2dp">
<shape android:shape="rectangle">
<stroke android:width="1dp" android:color="#000000" />
<solid android:color="#C1C1C1"/>
<corners android:radius="4dp" />
<gradient
android:startColor="#9C9C9C"
android:endColor="#ffffff"
android:angle="90" />
</shape>
</item>
</layer-list>
</item>
<!-- タップされたときの設定 -->
<item android:state_pressed="true">
<layer-list >
<!-- 枠線付き長方形 -->
<item>
<shape android:shape="rectangle">
<solid android:color="#FFFFFF"/>
<stroke android:width="2dp" android:color="#666666" />
<corners android:radius="4dp" />
</shape>
</item>
<!-- 2dp分の padding を設定した枠線なし長方形 -->
<item android:bottom="2dp" android:right="2dp">
<shape android:shape="rectangle">
<stroke android:width="1dp" android:color="#ffffff" />
<solid android:color="#E57627"/>
<corners android:radius="4dp" />
</shape>
</item>
</layer-list>
</item>
</selector>
////////////////////////////////////////////////////////////////////////////////////
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" // rectangle | oval | line | ring
>
<!-- 角を丸める -->
<corners
android:radius="5dp" // すべての角を半径5pxの円で丸める
android:topLeftRadius="5dp" // 左上の角を半径5pxの円で丸める
android:topRightRadius="5dp" // 右上の角を半径5pxの円で丸める
android:bottomLeftRadius="5dp" // 左下の角を半径5pxの円で丸める
android:bottomRightRadius="5dp" // 左下の角を半径5pxの円で丸める
/>
<!-- グラデーション -->
<gradient
android:angle="270" // グラデの角度(3時を基準として時計回り)
android:startColor="@color/white" // この色から、
android:centerColor="@color/blue" // この色を通って、
android:endColor="@color/black" // この色へグラデーションする
android:type="linear" // linear | radial | sweep
android:centerX="0.5" // グラデの中心のX座標割合(0~1.0) radial,sweepで有効
android:centerY="0.5" // グラデの中心のY座標割合(0~1.0) radial,sweepで有効
android:gradientRadius="10" // radialで有効
android:usesLevel="true" // LevelListDrawableを使用するか
/>
<!-- パディング -->
<padding
android:left="5dp" android:top="5dp" android:right="5dp" android:bottom="5dp"
/>
<!-- この形状の幅と高さ -->
<size
android:width="100dp" android:height="100dp"
/>
<!-- この形状の色 -->
<solid
android:color="@color/black"
/>
<!-- 枠線 -->
<stroke
android:width="3dp" // 枠の幅
android:color="@color/gray" // 枠の色
android:dashWidth="5dp" // 点線枠の幅
android:dashGap="1dp" // 点線枠の間隔
/>
</shape>