Android 使用SurfaceView在画布上查看背景
如何使用在另一个类中创建的视图作为SurfaceView画布的背景(非位图)?例如,我在一个类中创建了矩阵,并希望在扩展SurfaceView的另一个类中使用它作为背景?我不想将整个矩阵添加到线程中,因为我不想每次线程更新时都重新绘制画布Android 使用SurfaceView在画布上查看背景,android,surfaceview,Android,Surfaceview,如何使用在另一个类中创建的视图作为SurfaceView画布的背景(非位图)?例如,我在一个类中创建了矩阵,并希望在扩展SurfaceView的另一个类中使用它作为背景?我不想将整个矩阵添加到线程中,因为我不想每次线程更新时都重新绘制画布 Thread t=null; SurfaceHolder holder; boolean isRunning=false; int x=200; public ZmijicaSV(Context context) { super(context);
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;
}
将SurfaceView曲面与视图分层可能很棘手。自定义视图()或TextureView可能更容易使用。将SurfaceView曲面与视图分层可能比较棘手。自定义视图()或TextureView更易于使用。