0
私は、リソースからDrawable
で表される私のImageView
の内容にいくつかの追加をしようとしています。私はすべてのDrawable
がデフォルトで不変であることを知っていますが、mutable()
メソッドを呼び出してからBitmap
を取得した後でも、それをCanvas
オブジェクトに渡すと私はjava.lang.IllegalStateException: Immutable bitmap passed to Canvas constructor
になります。コードは次のとおりです。リソースからビットマップを変更する
Drawable homeImage = mHomeImage.getBackground(); // my ImageView
homeImage.mutate();
Canvas c = new Canvas(((BitmapDrawable)homeImage).getBitmap());
このBitmap
のコピーを作成せずに変更する方法はありますか?
ありがとうございます。ご覧のとおり、このビットマップ**をコピーしないで修正する方法はありますか**。 – teoREtik
私は早くurの質問を見た。私はちょうどあなたの質問のコードは動作しません上記のコードを入れた。そして私はあなたがそれのコピーを作成せずにビットマップを変更できるとは思わない。イメージビューの上に何かを描こうとしている場合。新しいビットマップを作成し、新しいものを新しいビットマップに描画し、次にframelayoutを使用して、ビューを互いの上に積み重ねます。単一のビューとして表示されます。 – blessenm
いいえ、私の目標は、3秒ごとにネットワーク速度を聞いて、画像の上に無線LAN信号の状態を描くことです。ビットマップをコピーする場合はメモリ消費が心配ですが、心配する必要はありません。 – teoREtik