2016-08-03 9 views
0

基本的には、すでに描いたキャンバスに変更を加えようとしています。ユーザーの入力に基づいて変更される部分があります。キャンバス全体を再描画するには時間がかかりすぎるので、同じビューとホルダーを使用して別のキャンバスを作成し、キャンバスの上に変化するアイテムを描画することを考えていました。私が描いているビットマップは、描かれた以前のキャンバスを完全に消去しているようです。これはどうですか?Android:セカンダリキャンバスを使用して既存のキャンバスの上に描画する方法はありますか?

もっと簡単な質問をするには、既存のビュー(この場合はサーフェスビュー)を消去せずに上に描画できるようにする必要があります。

答えて

0

Canvasインスタンスは、ビュー階層を介してトップダウンで伝播されるインスタンスなので、あまり意味がありません。カスタムビューの一部だけを更新する場合は、view.invalidate(Rect)view.invalidate(left, top, right, bottom)などのメソッドを使用できます。

+0

基本的には、既存のビューの下にあるコンテンツを消去せずに、そのビューの上に描画できるだけで済みます。 – jagrakye

+0

追加ビューを作成して既存のビューをオーバーレイすることができます。これは 'FrameLayout'または' RelativeLayout'を使って両方をラップすることで実現できます。この新しいビューに描画するだけです。 –

+0

ああ、多分私はそれを思い描いている。ありがとう! – jagrakye

関連する問題