2013-09-13 4 views
0

Я рисую что-то на холсте, используя SurfaceView. Как я могу определить способ отмены поверхностиView после того, как пользователь будет выполнен? Ниже приведена моя реализация SurfaceView. Класс DrawOnTop имеет onDraw(), но я инициализирую все переменные в классе Preview.Как выйти из SurfaceView?

public class Preview extends SurfaceView implements SurfaceHolder.Callback { 
    SurfaceHolder mHolder; 

    DrawOnTop mDrawOnTop; 
    boolean mFinished; 

    Preview(Context context, DrawOnTop drawOnTop) { 
     super(context); 

     mDrawOnTop = drawOnTop; 
     mFinished = false; 

     // Install a SurfaceHolder.Callback so we get notified when the 
     // underlying surface is created and destroyed. 
     mHolder = getHolder(); 
     mHolder.addCallback(this); 
     mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 
    } 

    public void surfaceCreated(SurfaceHolder holder) { 

     //I set the bitmaps etc here 
     mDrawOnTop.mBitmap = Bitmap.createBitmap(mDrawOnTop.mImageWidth, 
       mDrawOnTop.mImageHeight, Bitmap.Config.ARGB_8888); 

     mDrawOnTop.mBitmap.setPixels(mDrawOnTop.mRGBData, 0, 
       mDrawOnTop.mImageWidth, 0, 0, mDrawOnTop.mImageWidth, 
       mDrawOnTop.mImageHeight); 
     Button x = new Button(getContext()); 
    x.setText("Hi"); 
    x.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 


     } 

    }); 
     mDrawOnTop.invalidate(); 

    } 

    public void surfaceDestroyed(SurfaceHolder holder) { 

     mFinished = true; 

    } 

    public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { 

    } 

} 

EDIT:

Теперь после некоторых исследований я смог выяснить, что мне нужно использовать setContentView и установить его обратно на операцию я хочу.

+0

что вы подразумеваете под выходом из SurfaceView? –

+0

Я имею в виду, я хочу избавиться от всего, что было нарисовано – User1204501

+0

Можете ли вы разместить свой код здесь, .... – Piyush

ответ

1

setvisibility Невидимый, чтобы скрыть вид

setVisibility(this.Invisible); 
+1

Это удаляет все, что было нарисовано, однако оно дает мне черный экран. Я хочу, чтобы он вернулся к 'ActivityA' – User1204501