Scusami per la semplice domanda, sono completamente sviluppatore java e Android per principianti. Come posso ottenere l'istanza di Activity in setCameraDisplayOrientation quando viene chiamato surfaceChanged?Ottieni istanza attività
public class MyActivity extends Activity
{
private Camera mCamera;
private CameraPreview mPreview;
public final int cameraId = 0;
public Activity activity = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
activity = this;
// Create an instance of Camera
mCamera = getCameraInstance();
// Create our Preview view and set it as the content of our activity.
mPreview = new CameraPreview(this, mCamera);
FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);
preview.addView(mPreview);
}
public void setCameraDisplayOrientation(Activity activity,
int cameraId, android.hardware.Camera camera) {
}
public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback {
private SurfaceHolder mHolder;
private Camera mCamera;
...
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
...
setCameraDisplayOrientation(activity, cameraId, mCamera);
....
}
}
}
Perché è necessaria la sua istanza. Il suo metodo sovrascritto, avrà un certo contesto di attività. Ma se vuoi, prova a usare 'MyActivity.this' – Rajkiran
Io uso' this' ma il crash del programma quando surfaceChanged ha chiamato. Ok. Controllerò di nuovo il motivo del crash del programma. Ho bisogno di questa istanza per chiamare il suo metodo nel contesto: 'activity.getWindowManager(). GetDefaultDisplay() \t .getRotation()' – psct