1

我有这个 SurfaceView,当我拖动一个条时,zoomController 会增加,而当我以另一种方式拖动它时,zoomController 会减少。

效果是放大和缩小照片,我遇到的问题是旧照片会留下来,所以如果我把它变大然后变小,大图像会留在小图像的后面。为什么会这样?

公共 SView(上下文上下文){ 超级(上下文);缩放控制器 = 100; x = 100; y = 100;

        holder = getHolder();
        holder.setFormat(PixelFormat.TRANSPARENT);
    }
    public void run() 
    {
        while(isItOk)
        {
            if(!holder.getSurface().isValid())
            {
                continue;
            }
            Canvas c = holder.lockCanvas();
            Paint p = new Paint();

            tattoo = this.getResources().getDrawable(R.drawable.sample);
            if(tattoo != null)
            {
                tattoo.setBounds(getWidth() / 2 - zoomController - x, getHeight() / 2 - zoomController - y, getWidth()/ 2 + zoomController - x, getHeight()/ 2 + zoomController - y);
                tattoo.draw(c);
            }
            holder.unlockCanvasAndPost(c);
        }
    }
4

1 回答 1

0

就像你说的那样,SurfaceView不是清除旧图像。这是故意的。如果要清除它,则需要手动进行。在你(重新)绘制你的图像之前试试这个:

Canvas.drawColor(Color.BLACK);
于 2012-11-12T18:28:50.467 回答