如何使用在另一个类中创建的View作为SurfaceView上Canvas的背景(非位图)?例如,我在一个类中创建了Matrix并希望在另一个扩展SurfaceView的类中使用它作为背景?我不喜欢我不想将整个Matrix添加到线程中,因为我不希望每次线程更新时我的画布都会重新绘制它。
Thread t=null;
SurfaceHolder holder;
boolean isRunning=false;
int x=200;
public ZmijicaSV(Context context) {
super(context);
holder=getHolder();
}
public void run()
{
Paint p=new Paint();
p.setColor(Color.BLUE);
p.setStyle(Paint.Style.FILL);
while(isRunning)
{
if(!holder.getSurface().isValid()) {
continue;
}
Canvas c=holder.lockCanvas();
c.drawColor(Color.WHITE);
c.drawRect(x,0,x+100,100,p);
holder.unlockCanvasAndPost(c);
x+=10;
try {
t.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void resume()
{
isRunning=true;
t=new Thread(this);
t.start();
}
public void pause()
{
isRunning=false;
while(true)
{
try {
t.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
break;
}
t=null;
}