画像ファイルの配置とリソースIDの取得

広告

事前に作成した画像ファイルを読み込みBitmapクラスのオブジェクトとして利用する方法を確認します。ここではその前段階として、画像ファイルをどこに配置し、そしてリソースとして扱う場合に各画像に対して割り当てられたリソースIDを取得する方法を確認しておきます。

画像として扱えるファイルのフォーマットは「PNG」「JPEG」「GIF」です。今回サンプルとして次の3つの画像ファイルを用意しました。

star.png

star

star2.jpg

star

star3.gif

star

画像ファイルの配置場所はプロジェクトの中に含まれる「res」ディレクトリ内に配置します。このディレクトリはプロジェクトを作成時に自動的に作成されています。「res」ディレクトリ内に「drawable」と言うディレクトリを作成し画像ファイルを配置して下さい。

画像ファイルからBitmapを作成

リソースIDの取得

次に各画像に割り当てられるリソースIDを取得する方法です。

リソースIDは「R.java」ファイルに記述されます。このファイルはリソースに関する情報を管理するファイルです。作成するにはビルドを行って下さい。自動的に作成されます。(コンパイルエラーが出るような状況であっても「ant」などのビルドを行うと「R.java」ファイルは作成されます)。

画像ファイルからBitmapを作成

「R.java」ファイルはソースファイルが置かれているディレクトリに作成されています。

画像ファイルからBitmapを作成

ではテキストエディタなどで「R.java」ファイルを開いて見てください。今回の場合は次のようになっていました。

package jp.javadrive.android;

public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int star=0x7f020000;
        public static final int star2=0x7f020001;
        public static final int star3=0x7f020002;
    }
    public static final class layout {
        public static final int main=0x7f030000;
    }
    public static final class string {
        public static final int app_name=0x7f040000;
    }
}

この中で先ほど配置した画像ファイルに関連するものは次の部分です。

public static final class drawable {
    public static final int star=0x7f020000;
    public static final int star2=0x7f020001;
    public static final int star3=0x7f020002;
}

これら3つの画像に対するリソースIDはそれぞれ「R.drawable.star」「R.drawable.star2」「R.drawable.star3」となります。

( Written by Tatsuo Ikura )