Disculpe por una simple pregunta, soy completamente principiante java y desarrollador de Android. ¿Cómo puedo obtener la instancia de Activity en setCameraDisplayOrientation cuando se llama a SurfaceChanged?Obten la instancia de actividad
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);
....
}
}
}
Por qué necesita su instancia. Su método anulado, tendrá algún contexto de actividad. Pero aún así, si lo desea, intente con 'MyActivity.this' – Rajkiran
Utilizo' this' pero el programa falla cuando se llama a surfaceChanged. De acuerdo. Comprobaré de nuevo por qué falla el programa. Necesito esta instancia para llamar a su método en contexto: 'activity.getWindowManager(). GetDefaultDisplay() \t .getRotation()' – psct