1

私が取り組んでいるプロジェクトでは、「テクスチャ」をタイルにロードしようとしています。'texture'は、Resフォルダー内の*.pngファイルにすぎません。画像とタイルをリンクするように指示する情報は、SQLiteデータベースから取得されます。問題は、この情報を文字列(たとえば、Rock.png)として取得することです。この文字列からリソースID(@ drawable / rock)に到達するにはどうすればよいですか?

私の最初の推測は、巨大なケーススイッチを使用してクラスを作成し、それらをリンクすることでしたが、その後、それはかなり静的である(完全に遅延しない場合)という結論に達しました。だからもっと良い方法があるはずですが、今まで私はそれを見つけることができませんでした...

4

1 に答える 1

2

これを行うことでリソースIDを取得できます

int resourceID = MainActivity.this.getResources().getIdentifier(img, "drawable",
                     MainActivity.this.getPackageName());

どこ

MainActivity ==>現在のアクティビティ
img ==>拡張子のないビュー/描画可能な名前(例:(。png)およびR.(id / string / color ....)
drawable ==>「img」の
タイプMainActivity.this。 getPackageName() ==>現在のパッケージ名

于 2013-03-17T23:18:33.647 に答える