close
在 view 裡我使用一個 自定義 canvas 畫圖。先在 canvas 裡畫出背景, 再畫出幾個圖片。
背景是一個張圖片。當觸發 onTouchEvent 後,圖片移動 canvas 重畫背景畫出來會有圖片移動的痕跡。
如果背景指定瞭一個顏色就不會有這樣的問題。 怎麼解決?
canvas = new Canvas(bgbitmap);
繪制背景:
canvas.drawColor(selectedColor);
如果用 drawBitmap 繪制背景會有問題
// canvas.drawBitmap(bgbitmap, 0, 0, null);
// 繪制 圖片
for (int i = fbmpCount - 1; i >= 0; i--) {
FreeBitmap fb = findFreeBmpByPriority(i);
if (fb != null)
this.canvas.drawBitmap(fb.getBmp(), fb.getXpoint(), fb.getYpoint(),
null);
}
this.invalidate();
// onDraw 方法。
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawBitmap(bgbitmap, 0, 0, null);
}
import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.Canvas; import android.view.View; public class MyView extends View{ private Bitmap background; public MyView(Context context) { super(context); } @Override protected void onDraw(Canvas canvas) { canvas.drawColor(0xFFFFFFFF); if(null==background){ background=Bitmap.createBitmap(bigBitmap.getWidth(), bigBitmap.getHeight(), Config.ARGB_8888); Canvas c=new Canvas(background); c.drawBitmap(bigBitmap, 0, 0, null); c.save(Canvas.ALL_SAVE_FLAG); } canvas.drawBitmap(background, 0, 0, null); canvas.drawBitmap(smallBitmap, x, y, null); } }
(0)
我認為你應該在重新畫之前清空一下畫佈:
Canvas.drawColor(Color.WHITE)
試試可不可以
(0)
1條評論
- 我也這麼認為的 sasuke38 12-20 11:40
Orignal From: android 在 view 裡我使用一個 自定義的 canvas 畫圖 出現問題
全站熱搜