目次へ
AndroidのいろいろなViewに背景色をつけたり、枠線をつけたりする方法をまとめておきます。
次の2つを設定することで、背景色などを設定することができます。
|
■■■■layoutのbackgroundの設定■■■■
たとえば、下の画面は、4つのEditTextとボタンを横にならべたものですが、枠線や背景色が異なっています。枠線や背景色はlayoutのxml内のandroid:backgroundで指定しています。
最初のEditTextだけは、この指定が無いので、一般的な下線だけが引かれたものになっています。
この、android:backgroundで指定しているのは、drawableに保存したxmlファイルのファイル名の拡張子の無いものです。
res/layout/content_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="AB" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/border" android:text="AB" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/border1" android:text="AB" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/gradient" android:text="AB" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ボタン" android:id="@+id/buttonEq" android:background="@drawable/pink_gradient" /> </LinearLayout> |
■■■■drawableのxml■■■■
2番目のEditTextに指定されているres/drawable/border.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="20px" android:color="#CCCCFF" /> </shape> |
3番目のEditTextに指定されているres/drawable/border1.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="20px" android:color="#CCCCFF" /> <padding android:left="50px" android:top="2px" android:right="2px" android:bottom="2px" /> <corners android:radius="5dp" /> </shape> |
また、cornersを指定することにより、枠線の角が少し丸くなっています。
4番目のEditTextに指定されているres/drawable/gradient.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#FFFFB7" android:endColor="#FF9900" android:angle="270" /> <stroke android:color="#F95E00" android:width="2dp" /> <corners android:radius="8dp" /> </shape> |
startColorからendColorまで徐々に色が変わっていきます。
android:angleは、グラデーションの方向を示します。
0にすると、左から右へのグラデーション。90にすると、下から上へのグラデーションになります。デフォルトは0です。
最後のボタンに指定されているres/drawable/pink_gradient.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:startColor="#FFAAAA" android:endColor="#FFEEEE" android:angle="0" /> <stroke android:color="#F95E00" android:width="2dp" /> <corners android:radius="8dp" /> </shape> |
■■■■一般的なshape■■■■
Android Developers用の公式ページの shape drawableの説明ではshapeのSYNTAXの説明として以下のように記述されています。
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape=["rectangle" | "oval" | "line" | "ring"] > <corners android:radius="integer" android:topLeftRadius="integer" android:topRightRadius="integer" android:bottomLeftRadius="integer" android:bottomRightRadius="integer" /> <gradient android:angle="integer" android:centerX="integer" android:centerY="integer" android:centerColor="integer" android:endColor="color" android:gradientRadius="integer" android:startColor="color" android:type=["linear" | "radial" | "sweep"] android:useLevel=["true" | "false"] /> <padding android:left="integer" android:top="integer" android:right="integer" android:bottom="integer" /> <size android:width="integer" android:height="integer" /> <solid android:color="color" /> <stroke android:width="integer" android:color="color" android:dashWidth="integer" android:dashGap="integer" /> </shape> |
にほんブログ村
0 件のコメント:
コメントを投稿