tande lab.

[Android] dimension.xml で余白情報を管理する

色情報を colors.xml で変数のように管理できたように、余白情報も変数のように管理できる仕組みがあるそうです。

こういう仕組みがあると分かってからデザインするのと、分かってないでデザインするのではかなり効率に差がでると思いました。

res > values

の中に "dimension.xml" を新規作成します。
https://lh3.googleusercontent.com/-5im9Mp5M_W4/UOmJ6FX5csI/AAAAAAABPWc/3w4KpSKgBQU/s800/130106-0002.png

その作成した XML ファイル内に、下記のように、名前と数値を対応付けて登録します。
数値に使える単位は dp, sp, pt, px, mm, in だそうです。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="padding_xsmall">2dp</dimen>
	<dimen name="padding_small">4dp</dimen>
	<dimen name="padding_medium">8dp</dimen>
	<dimen name="padding_large">12dp</dimen>
	<dimen name="padding_xlarge">16dp</dimen>
	<dimen name="list_border_width">1dp</dimen>
</resources>

私の場合は、利用する余白 (padding) のパターンは基本、small, medium, large の3種類としたかったので

  • padding_small
  • padding_medium
  • padding_large

をメインで使う余白情報として管理し、それより小さいか大きい余白を使いたい時は

  • padding_xsmall
  • padding_xlarge

を予備で利用することにしました。

リストのボーダーのラインなどは、どの画面でも同一で管理しておきたいので
個別に別途登録するなどして管理しておいたりします。

上の例だと list_border_width がそれにあたります。

eclipse のプロパティパネルで指定する場合

"dimension.xml" を作成すると名前が候補に出てくるようになるので、簡単に指定できる。
https://lh5.googleusercontent.com/-azeVyC8BeK4/UOmNOlyNsaI/AAAAAAABPXY/Zq7VondpIP8/s800/130106-0003.png

XML で直接指定する場合

もちろん XML に直接こんな感じで書いても良し。

android:textColor="@dimen/padding_large"

参考サイト