2011-02-04 13 views
3

私はビットマップ[]内の画像を参照するのに便利な方法を探しています。次のように私は、それらを参照してくださいAndroid、文字列を使って配列のビットマップをプログラムで参照したい

瞬間、私は私のクラスで

Bitmap[] mBmp = new Bitmap[6]  
int image1 = 0, image2 = 1, image3 = 2, someimage = 3, otherimage = 4, yetanoimage = 5; 

を整数の束を宣言:

mBmp[someimage] ... 

はしかし、これは非効率的であり、私が参照したいですそれらのファイル名(拡張子を差し引いたもの)またはプログラム的に決定できる他の一意の識別子にしたがって、それらに(好ましくは)追加する。画像の

  1. 数が
  2. ファイル名は、私がテンプレートとしてプロセスを自動化したい
  3. 任意であり、任意である。

    この理由は、ということです。

答えて

2

配列を使用する必要がありますか?ビットマップを保存するのになぜHashtableを使用しないのですか?そうすれば、それらの(一意の)ファイル名を識別子として取得できます。例1として

、挿入ビットマップ:

Hashtable<String, Bitmap> bitmaps = new Hashtable<String, Bitmap>(); 
numbers.put("one_image", bitmap1); 
numbers.put("image_two", bitmap2); 
numbers.put("beach_house", bitmap3); 

そしてフェッチビットマップ:

bitmap = bitmaps.get("beach_house"); 
+0

実際に、配列を使用する理由は、ファイル名(一意のファイル、またはシリーズの最初のもの)とインデックス(一意に名前が付けられた最初のものに続くシリーズの画像)。 Has Mapは動作しますが、ビットマップのインデックスをビットマップ自体ではなくハッシュマップに配置することで、別の方法で実装しました。 – Hamid

3

私の推薦は、HashMapのにあなたのイメージを置くことであろう。 MapはArrayと似ていますが、オブジェクトはキーとして機能します。この場合、Stringオブジェクトをキーとして使用することをお勧めします。 Mapはコレクション型、HashMapはMapの実装です。画像を挿入するには

Map<String, Bitmap> myPictures = new HashMap<String, Bitmap>(); 

:あなたのような何かをしたいハッシュマップを作成するには

ビットマップを取得

String fileName = "somefileName"; 
Bitmap bitmap = Bitmap bitmap = BitmapFactory.decode(fileName) 
myPictures.put(fileName, bitmap) 

は、そのようにのように行うことができます。

Bitmap myBitmap = myPictures.get(filename) 

次のようにしてビットマップを反復処理できます。

for(Bitmap bitmap : myPictures.values()){ 
    display(bitmap); 
} 
関連する問題