色リソースへリソースIDの割り当て

広告

色のリソースの場合もレイアウトや文字リソースの場合と同じくリソースに対するIDが割り振られます。リソースの登録を行いましたら一度ビルドを行って下さい。その後で作成された「R.java」の中身を確認してみます。

/* AUTO-GENERATED FILE.  DO NOT MODIFY.
 *
 * This class was automatically generated by the
 * aapt tool from the resource data it found.  It
 * should not be modified by hand.
 */

package jp.javadrive.android;

public final class R {
    public static final class attr {
    }
    public static final class color {
        public static final int chocolate=0x7f030001;
        public static final int olive=0x7f030000;
    }
    public static final class layout {
        public static final int main=0x7f020000;
    }
    public static final class string {
        public static final int app_name=0x7f040000;
    }
}

上記のように「R」クラスの中の「color」クラスの中にstatic変数として定義が行われています。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="olive">#808000</color>
    <color name="chocolate">#d2691e</color>
</resources>

今回登録した色のリソースは上記のようになっています。リソース名として指定した「olive」と「chocolate」に対して「R.java」ファイルの中でint型の変数名として定義されていることが分かります。

詳細は別のページで確認しますが、プログラムなどから参照する場合は「R.color.olive」のように参照でき、レイアウト用のXMLファイルなどから参照する場合は「@color/olive」のように参照できます。

文字列の場合と同じく色のリソースの場合にも登録されているファイル名は関係なく、リソースとして登録したリソース名が「color」クラス内の変数名として使われている点に注意して下さい。

では次のページで実際にプログラムから参照を行ってみます。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)