0

Android は、res/drawable ディレクトリ内の各写真に ID を割り当てます。彼らはどこにいる?プールから 1 つの写真を動的に選択して表示したいと考えています。どうやってやるの?

4

3 に答える 3

0

それらは res/drawable フォルダーに保存されます。

ファイル名が demo.png の場合、R.drawable.demo でアクセスできます。

ランダム ドローアブルにアクセスする場合は、すべてのリソース識別子を Integer ArrayList に格納し、Random() を使用してランダム関数をプログラムで生成し、arraylist からその特定のアイテムを取得します。そうすれば、毎回ランダムなドローアブルが得られます。

于 2013-01-11T05:35:54.323 に答える
0

自動生成された ID は gen ファイルにありますが、使用することはお勧めできません。R.drawable.filename の事前定義された配列を介してファイル名を直接使用し、ランダムに選択することをお勧めします。

于 2013-01-11T05:36:27.350 に答える
0

ID は R.java ファイルに保存されますが、変更は毎回上書きされるため、編集することはできません。

名前でリソースにアクセスすることもできます。これは、リソースの名前を知っている場合、または事前に定義された命名スキームに従ってリソースを導出できる場合に、問題を解決するための実行可能なアプローチになる可能性があります。(たとえば、イメージはシーケンスimage1で名前が付けられimage2ます。

クラスのgetIdentifier()メソッドを使用して、名前を識別子にマップする必要がありますResources

String name = "resource" + rng.nextInt(count);
int resource = getResources().getIdentifier(name, "drawable", "com.package");

このメソッドのドキュメントには次のように書かれています。

注: この関数の使用は推奨されません。名前でリソースを取得するよりも、識別子でリソースを取得する方がはるかに効率的です。

これは事実ですが、パフォーマンスに影響されないコードで実行している場合は、問題になる必要はありません。

または、リソースを XML でリストすることを気にしない場合は、ランダムに選択できる型付き配列を作成できます。

于 2013-01-11T05:36:52.980 に答える