yajun_soft 2012-12-19 09:00 采纳率: 100%
浏览 9942
已采纳

android 在 view 里我使用一个 自定义的 canvas 画图 出现问题

在 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);
    }
  • 写回答

2条回答

  • Jobernowl 2012-12-20 03:11
    关注
        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);
            }
    
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择
  • ¥15 这款软件是什么?需要能满足我的需求
  • ¥15 SpringSecurityOauth2登陆前后request不一致