2012年11月8日木曜日

Androidでアプリの背景色にグラデーションを使用する

私用アプリの作成中ふと思う

「背景寂しいなぁ…」

とか呟いていたら割と予想外の出会いを果たしたのでメモメモ


グラデーションを利用する


1. 始めの色, 終わりの色の作成

グラデーションというからには ある色 から ある色 へと変化するので, その始めの色と終わりの色を作成する. 
場所は res/values/color.xml にでもまとめておくといいかと. 無ければ作れば良い.


2. グラデーションの指定

色が決まったらいよいよグラデーションの指定.
res/drawable ディレクトリにお好きな名前で.xmlを作成する

<?xml version="1.0" encoding="utf-8"?>
<shape  xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient android:startcolor="@color/color_back_gradient_start"
        android:endcolor="@color/color_back_gradient_end"
        android:angle="315">
    </gradient>
</shape>

colorは自作の色.
<shape>では背景に関していじることができる模様

android:shape="rectangle"

で形状を指定. この場合は長方形になる
ちなみに oval を指定すると楕円形になります.

そして<gradient>でそのグラデーションの内容の指定を行なう.

android:startcolor="@color/color_back_gradient_start"
android:endcolor="@color/color_back_gradient_end"
android:angle="315"

このあたりは見たとおり. 上から グラデーションの始まりの色, 終わりの色, グラデーションをかける角度 を指定している.
注意は3つ目の角度. この角度はの基準は 左→右 である点に注意. なので 0 を指定すると左から右へのグラデーション. ここから角度を増やすと反時計回りにぐるぐる回りだす.
またこの角度, 指定できるのは 45 * n である数値のみである点にも注意. 負の値を入力すると逆回転します.

3. グラデーションの配置

作った.xmlを書くwidgetの android:background に指定してやればOK.
ね?簡単でしょう?



ちなみに<shape>には他にも 角をいじる<corners>や, 枠線をつける<stroke>等があるらしいけど, 今回はいじってないのでまたの機会に





顔文字使ってねぇ!Σ(・д・)

0 件のコメント:

コメントを投稿

AWS CDKで立てたEC2インスタンスのTimeZoneとかいじりたかった話

EC2を立てることはできたけど、立てたインスタンスは UTCのままだし設定ファイルとかいちいちscpしてくるのはダルい。 当初UserDataでなんとかしようとしたものの、「書く量がヤバいしメンテしにくい」と悩んでいたところ見かけたのが  AWS::CloudFormation:...