我有这个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);
}
}
答案 0 :(得分:0)
正如您所说,SurfaceView
并未清除旧图像。这是故意的。如果要清除它,则需要手动完成。在你(重新)绘制你的图像之前试试这个:
Canvas.drawColor(Color.BLACK);