【Android】Viewの装飾

TextViewやEditTextをはじめとするViewクラスを継承する多くのViewは、様々な装飾をすることが可能です。

個人アプリは特にシンプルなUIになりがちですが、こうした装飾をすることで見た目が一気にグレードアップします。

ここではいくつかそのサンプルを上げておきます。

実装

装飾を定義したファイルの準備

drawble/view_frame.xml

方法としては、drawble配下に装飾用の定義を記述したxmlファイルを用意しておき、Viewのバックグラウンドに指定します。

xmlファイルを追加は、プロジェクトメニューの drawbleを右クリック → New → File で追加します。

ファイル名は任意で、view_frame.xmlとした場合、適用したいViewのbackground属性に以下のように設定します。

android:background="@drawble/view_frame"

装飾定義ファイルには、shapeタグとその子要素によって記述します。

どのように記述していくのかを以下に記載していきます。

枠線をつける

drawble/view_frame.xml

まずはシンプルに枠線をつけてみます。特にデフォルトのEditTextは枠線がなく、明るい画面にデフォルトのEditTextだと入力欄であることが気づきにくいという難点があるので枠線は必須だと個人的に思ってます。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke android:width="2dp" android:color="#232323" />
</shape>

strokeタグでEditTextに枠線をつけます。

widthで線の幅、colorで色を指定できます。

背景色をつける

drawble/view_frame.xml

これもよく使います。EditTextでは特に淡い色にして背景との境界を視認しやすくすると良いです。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke android:width="2dp" android:color="#232323" />
    <solid android:color="#ddd" />
</shape>

solidタグで背景色を指定します。

角を丸くする

drawble/view_frame.xml

これはあまり使ったことがないですが、一気に柔らかいイメージになるのでアプリケーションのタイプによってはハマると思います。

もちろんButtonコントロールにも使えるので、一昔前のiPhoneアプリみたいに作ることもできます。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke android:width="2dp" android:color="#232323" />
    <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp" />
</shape>

cornersタグを使えば、EditTextの角に丸みをつけることができます。

  • topLeftRadius 左上
  • topRightRadius 右上
  • bottomLeftRadius 左下
  • bottomRightRadius 右下

これらの要素は丸みの度合いが全て同じ値であれば、android:radius で一括指定できます。

グラデーションをつける

drawble/view_frame.xml

これはちょっと使い所が難しそうですが、こんな事もできますという例です。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke android:width="2dp" android:color="#232323" />
    <corners android:radius="10dp" />
    <gradient android:angle="0" android:startColor="#aff" android:endColor="#ffa" android:type="linear" />
</shape>

gradientタグで背景色にグラデーションをつけることができます。

startColorから始まり、endColorで終わるようにグラデーションがつきます。

angle要素は、グラデーションの角度のことで0のときは左から右へ、90にすると下から上へグラデーションがかかります。

コメント

このブログの人気の投稿

docker-compose up で proxyconnect tcp: dial tcp: lookup proxy.example.com: no such host

docker-compose で起動したweb、MySQLに接続できない事象

【PHP】PHP_CodeSnifferを使う(コーディングルールのカスタマイズ)