Android 使用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);

如何使用在另一个类中创建的视图作为SurfaceView画布的背景(非位图)?例如,我在一个类中创建了矩阵,并希望在扩展SurfaceView的另一个类中使用它作为背景?我不想将整个矩阵添加到线程中,因为我不想每次线程更新时都重新绘制画布

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更易于使用。