SurfaceView没有清除旧照片

时间:2012-11-12 17:14:24

标签: android surfaceview

我有这个SurfaceView,当我拖动一个条形时,zoomController会增加,当我拖动它时,zoomController会减少。

效果是放大和缩小照片,我遇到的问题是旧照片保持不变,如果我让它真的很大,然后小的大图像留在小图像的背面。为什么会这样?

public SView(Context context)         {             超级(上下文);             zoomController = 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);
        }
    }

1 个答案:

答案 0 :(得分:0)

正如您所说,SurfaceView并未清除旧图像。这是故意的。如果要清除它,则需要手动完成。在你(重新)绘制你的图像之前试试这个:

Canvas.drawColor(Color.BLACK);