Drawable のディープコピー 質問する

Drawable のディープコピー 質問する

ImageView があります。onClick で Drawable を取得します。

Drawable dr = ((ImageView) v).getDrawable();

そして、それをダイアログの ImageView に設定します。

zoomedImage.setImageDrawable(dr);

しかし、ダイアログを閉じるかアクティビティが再開されると、元の位置にある画像が引き伸ばされ、サイズよりも大きく表示され、ImageView には画像の一部しか表示されなくなります。

これはディープ コピーの場合ですか、それとも別の問題がありますか? そうである場合、元の Drawable をディープ コピーして、コピーをズームされた画像に設定するにはどうすればよいですか?

前もって感謝します。

ベストアンサー1

ついに成功しました! 私も同様の問題を抱えていました。drawable にカラー フィルターを使用すると、drawable が変更されました。これは、ここにいる他の人の解決策に非常に近いですが、私にとってはこれだけが機能しました:

Drawable drwNewCopy = dr.getConstantState().newDrawable().mutate();

おすすめ記事