次のように XML で ImageView を定義しています。
<ImageView
android:id="@+id/background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"/>
ユーザーのアクション (ライブラリから画像を選択する) に基づいて、コードで画像の内容を動的に設定しようとしています。次のコードを使用して画像を設定しました。
ImageView bgView = (ImageView)root.findViewById(R.id.background);
Drawable d = Drawable.createFromPath(wallpaper);
bgView.setImageDrawable(d);
このコードを呼び出しても、ImageView インスタンスにすぐには影響しません。ただし、何らかの画像を XML 定義に入れると、次のようになります。
<ImageView
android:id="@+id/background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/test_image"/>
それは正常に動作します。問題の原因が何であるかを知っている人はいますか? 画像設定コードが UI スレッドで実行されていること、および作成された Drawable が有効であることを確認しました。追加された画像を反映するためにレイアウトが正しく行われていないことに関連しているように感じますか?