Androidでshape使用
3887 ワード
Androidではshapeを使用してコントロールの表示プロパティを定義することがよくありますが、今日はshapeの使用を見て、shapeについて大体理解して、少しまとめました.
まず、次のコードを見てください.
solid:ソリッド、つまり塗りつぶしの意味android:color塗りつぶしの色を指定
gradient:グラデーションandroid:startColorとandroid:endColorはそれぞれ開始色と終了色で、ndroid:angleはグラデーション角度で、45の整数倍でなければなりません.また、グラデーションのデフォルトモードはandroid:type="linear"であり、線形グラデーションであり、グラデーションをラジアルグラデーション、android:type="radial"と指定することができ、ラジアルグラデーションでは半径android:gradientRadius="50"を指定する必要があります.
stroke:ストロークandroid:width="2 dp"ストロークの幅、android:colorストロークの色.また、android:dashWidth="5 dp"android:dashGap="3 dp"に設定することもできます.android:dashWidthは'-'という横線の幅を表し、android:dashGapは間隔を隔てた距離を表します.
corners:フィレットandroid:radiusは角の弧で、値が大きいほど角が丸くなります.また、4つの角を異なる角度に設定する方法として、ここに注意すべき点があります.bottomLeftRadiusは右下隅です.左下ではなく、これは少し憂鬱ですが、使用に影響しません.間違えないでください.またネット上では0 dp無効に設定されていると言われていますが、テストでは可能であることがわかりました.2.2を使っています.この問題を修復したのかもしれませんが、無効であれば1 dpに設定するしかありません.
padding:間隔はもちろん、XMLレイアウトファイルでよく使われています.
概して、以下は、SelectorにおいてButtonの背景として用いられるボタンの一般状態、フォーカス取得状態、および押下時の状態をそれぞれ定義する使用例であり、具体的なコードは以下の通りである.
まず、次のコードを見てください.
<shape>
<!-- -->
<solid android:color="#ff9d77"/>
<!-- -->
<gradient
android:startColor="#ff8c00"
android:endColor="#FFFFFF"
android:angle="270" />
<!-- -->
<stroke
android:width="2dp"
android:color="#dcdcdc" />
<!-- -->
<corners
android:radius="2dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
solid:ソリッド、つまり塗りつぶしの意味android:color塗りつぶしの色を指定
gradient:グラデーションandroid:startColorとandroid:endColorはそれぞれ開始色と終了色で、ndroid:angleはグラデーション角度で、45の整数倍でなければなりません.また、グラデーションのデフォルトモードはandroid:type="linear"であり、線形グラデーションであり、グラデーションをラジアルグラデーション、android:type="radial"と指定することができ、ラジアルグラデーションでは半径android:gradientRadius="50"を指定する必要があります.
stroke:ストロークandroid:width="2 dp"ストロークの幅、android:colorストロークの色.また、android:dashWidth="5 dp"android:dashGap="3 dp"に設定することもできます.android:dashWidthは'-'という横線の幅を表し、android:dashGapは間隔を隔てた距離を表します.
corners:フィレットandroid:radiusは角の弧で、値が大きいほど角が丸くなります.また、4つの角を異なる角度に設定する方法として、
padding:間隔はもちろん、XMLレイアウトファイルでよく使われています.
概して、以下は、SelectorにおいてButtonの背景として用いられるボタンの一般状態、フォーカス取得状態、および押下時の状態をそれぞれ定義する使用例であり、具体的なコードは以下の通りである.
main.xml:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TestShapeButton"
android:background="@drawable/button_selector"
/>
button_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<!-- -->
<gradient
android:startColor="#ff8c00"
android:endColor="#FFFFFF"
android:type="radial"
android:gradientRadius="50" />
<!-- -->
<stroke
android:width="2dp"
android:color="#dcdcdc"
android:dashWidth="5dp"
android:dashGap="3dp" />
<!-- -->
<corners
android:radius="2dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item android:state_focused="true" >
<shape>
<gradient
android:startColor="#ffc2b7"
android:endColor="#ffc2b7"
android:angle="270" />
<stroke
android:width="2dp"
android:color="#dcdcdc" />
<corners
android:radius="2dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item>
<shape>
<solid android:color="#ff9d77"/>
<stroke
android:width="2dp"
android:color="#fad3cf" />
<corners
android:topRightRadius="5dp"
android:bottomLeftRadius="5dp"
android:topLeftRadius="0dp"
android:bottomRightRadius="0dp"
/>
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
</selector>