[解決済み] アンドロイドで描画可能なリソースに名前を付けてアクセスする方法
2023-07-02 15:53:09
質問
私のアプリケーションでは、ビットマップの描画オブジェクトを、参照を維持したくない場所で取得する必要があります。
R
. そこで、私はクラスを作成しました。
DrawableManager
を作成し、drawableを管理します。
public class DrawableManager {
private static Context context = null;
public static void init(Context c) {
context = c;
}
public static Drawable getDrawable(String name) {
return R.drawable.?
}
}
そして、このようにどこかでdrawableを名前で取得したい(car.pngはres/drawablesの中に入れている)。
Drawable d= DrawableManager.getDrawable("car.png");
しかし、ご覧の通り、名前からリソースにアクセスすることはできません。
public static Drawable getDrawable(String name) {
return R.drawable.?
}
代替案は?
どのように解決するのですか?
あなたのアプローチは、ほとんどの場合間違った方法であることに注意してください (描画可能なオブジェクトを使用するオブジェクト自体にコンテキストを渡す方が、静的な
Context
をどこかに置いておくよりも、描画可能なオブジェクト自体にコンテキストを渡す方が良いのです)。
そう考えると、動的な描画可能な読み込みを行いたいのであれば getIdentifier :
Resources resources = context.getResources();
final int resourceId = resources.getIdentifier(name, "drawable",
context.getPackageName());
return resources.getDrawable(resourceId);
関連
-
[解決済み] DrawableをBitmapに変換する方法は?
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] AndroidのListViewで画像を遅延ロードする方法
-
[解決済み] Androidで画面の大きさをピクセル単位で取得する方法
-
[解決済み] Android: リソースから名前を使って文字列を取得するには?
-
[解決済み] Androidのdrawableディレクトリはサブディレクトリを含むことができますか?
-
[解決済み] アダプタからActivityメソッドを呼び出す
-
[解決済み] サポートライブラリのアクションバーをPreferenceActivityに追加するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Android Webview - キャッシュを完全に削除する
-
[解決済み] AndroidでラジオボタンにOnClickListenerを設定するには?
-
[解決済み] getApplication()、getApplicationContext()、getBaseContext()、someClass.thisの違いと使い分け。
-
[解決済み] handler.postDelayed()を停止する。
-
[解決済み] バイト配列の画像ファイルをビットマップに変換するには?
-
[解決済み] ArrayList<MyCustomClass>をJSONArrayに変換する。
-
[解決済み] EditTextをReadOnlyにする
-
[解決済み] グリッドビューの高さが削減される
-
[解決済み] google-services.jsonって実際何してるの?
-
[解決済み] WhatsAppでメッセージを送信する