2011-02-02 20 views
0

最近、アンドロイドでゲームを開発し始めたことがあります。アプリケーションにロードされた一連の画像を取得する簡単な方法があるかどうかは不思議でした。私の現在の実装がint []配列、
この配列に各描画可能値を格納作成基本的Android:複数の画像を読み込む

を含むように、は(今、この手符号化されなければならないので、私はそれ以上のイメージを追加する場合にはなければなりませんプログラムで追加)

次に、配列内の各アイテムを繰り返し、BitmapFactoryを呼び出してリソースを取得します。 (残念ながら私は自宅にいるのでコードは持っていませんが、私は仕事中ですが、それはジストです)

2つの質問は、入れなくてもドロアブルを得る方法はありますか各項目を手作業でint []に変換します。つまり、おそらくファイル名プレフィックスを探して、接頭辞を持つリソースだけをロードしますか?

私の2番目の質問につながるのは、私の描画可能なリソースディレクトリにあるこれらのイメージだけではなく、ファイルを管理するために特別な組織(フォルダ)を追加する方法があるからです。現時点では、ドロウアブルファイル内に多数のイメージがあり、どのようにこれらのサブフォルダ/イメージを参照するのでしょうか。

答えて

1

リソース構造内にサブフォルダを配置することはできません。 Androidは、どのリソースをどのような条件(ローカリゼーション、異なる画面解像度など)で使用するかを決定するためのフォルダレイアウトに依存します。

画像を一括してロードしようとしているのはなぜか分かりませんが、文字列名でリソースを検索できる2つの(より遅い)メソッドがあります。画像に命名規則を使用した場合、[Resources.getIdentifier()] [1]を使用してそれらの画像を見ることができます。しかし、ゲームのパフォーマンスが重視される可能性が高いので、int IDを使用するより手作業の方がより効率的なので、おそらくより効果的です。

[1]:http://developer.android.com/reference/android/content/res/Resources.html#getIdentifier(java.lang.String、java.lang.Stringで、java.lang.Stringで)

+0

上記のコメントを参照してください。ここに入力することはできませんでした。 – somin

0

それらが異なる項目についてユーザに表示されるように、Iは画像の負荷をアップロードしています。応答性が重視されるシステムではないので、私が望むものに関しては大丈夫です。けれども...

公共int型getIdentifier(文字列名、文字列DEFTYPE、文字列defPackage) 以降:APIレベル1

戻り与えられたリソース名のリソース識別子。完全修飾リソース名の形式は "package:type/entry"です。最初の2つのコンポーネント(パッケージとタイプ)は、それぞれdefTypeとdefPackageがここで指定されている場合はオプションです。

注:この機能の使用はお勧めしません。名前よりも識別子でリソースを取得する方がはるかに効率的です。

リソースIDを使用することをお勧めしますが、後でファイルを追加する場合は、追加ファイルを含むようにアプリケーションを再コンパイルする必要があります。私が文字列配列に持っている項目。だから私は配列に項目を追加することはできますが、コードを変更することなく画像を追加することはできます。

確かにこれを修正する機能はありますか?

+0

元の質問を編集して詳細を追加し、回答を投稿しないでください。いずれにせよ、私はあなたの懸念を理解していません。画像リソースを使用している場合は、画像へのアクセス方法に関係なく、新しい画像を追加するためにアプリケーションを再コンパイルする必要があります。イメージを変更するために再コンパイルする必要がない場合、Androidリソースを使用することはできず、独自のソリューションを用意する必要があります。 –

+0

ちょっとMayra、私は私の返信を置くつもりだったかどうかあまりにも確かではなかった、アドバイスのおかげで。また、私はAndroidがアプリケーションソースコード以外のリソースを編集できると主張していますが、私のゲームにアイテムを追加したい場合(画像が必要な他の原始的なデータタイプの中で)、私は単純にドロアブルリソースを取得し、取得されます。値のリソースの中で文字列配列に格納する名前とは異なります。これは、新しい名前を追加するために配列がループされているために追加できます。 – somin

+0

新しいImage Resourceを追加するか、Arrayリソースを変更すると、再コンパイルが強制されます。なぜそれが問題なのか分かりませんが、あなたのゲームが配備されたらすぐにリソースを編集するようなものではありません。本当にそれをやりたければ、リソースを使用しないでください。 –

関連する問題