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);
}



  • 1
    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 畫圖 出現問題

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 x0z7blog01 的頭像
    x0z7blog01

    x0z7blog01的部落格

    x0z7blog01 發表在 痞客邦 留言(0) 人氣()