0
我在我的Activity類中有一個非靜態的包私有方法,我想在SurfaceView中調用它,例如:surfaceChanged()或surfaceDestroyed()。如何在SurfaceView的Activity中調用包 - 私有方法?
public class MyActivity extends Activity {
Camera mCamera = Camera.open();
Camera.Parameters parameters = mCamera.getParameters();
boolean hasFlash = false;
...
void destroyCamera() {
flashOff();
mCamera.stopPreview();
mCamera.release();
mCamera = null;
}
void updateCamera() {
mCamera.setParameters(parameters);
mCamera.startPreview();
}
...
class CameraView extends SurfaceView implements SurfaceHolder.Callback {
...
public void surfaceDestroyed(SurfaceHolder holder) {
destroyCamera();
}
...
有沒有更好的方法來做到這一點?我還在同一個活動中使用toggleFlash()方法,因此我可以通過按鍵偵聽器從活動內切換閃光燈。
這是非常不清楚你在問什麼。你說'SurfaceView',但是你的代碼中沒有提到它。請更具體一些。 – Phil 2013-02-28 23:05:19
添加了我試圖調用活動中的方法的SurfaceView類。可以在重載的構造函數中將該活動作爲參數傳遞嗎?我問的是從SurfaceView類的Activity類中調用方法的最佳方式。對困惑感到抱歉 :) – user2081718 2013-02-28 23:18:30