vista previa de la cámara
Tengo un problema. Estoy tratando de desarrollar un programa que utiliza la cámara, todo está funcionando en mi dispositivo, pero como muchos de ustedes saben que CameraPreview
no funciona de la misma manera en todos los dispositivos, así que traté de integrar el código que google proporciona en este dirección:
Http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/CameraPreview.html
- ¿Cómo maneja el android las diferencias entre el tamaño de vista previa y el tamaño real de SufaceView?
- ¿Cómo crear una vista previa de la cámara usando API 21 android?
- ¿Hay una manera simple de dar vuelta a la disposición del byte del onPreviewFrame de la cámara en una imagen en androide?
- Mostrar imagen de aplicación personalizada en el administrador de tareas de ICS o JB
- NullPointerException en WebView (WebView.requestFocus ())
El problema que he enfrentado es que no sé cómo integrar a mi proyecto, aquí está mi código y lo que he hecho sin exceder:
Preview mPreview; private Camera mCamera; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mPreview = new Preview(this); //ContentView---------------------------------------------------------- setContentView(R.layout.main); mSurfaceView = (SurfaceView)findViewById(R.id.camera_surface); mPreview.surfacemetod(mSurfaceView); @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); mCamera = Camera.open(); mPreview.setCamera(mCamera);
A continuación, la clase Vista previa:
class Preview extends ViewGroup implements SurfaceHolder.Callback { private final String TAG = "Preview"; SurfaceView mSurfaceView; SurfaceHolder mHolder; Size mPreviewSize; List<Size> mSupportedPreviewSizes; Camera mCamera; Preview(Context context) { super(context); mSurfaceView = new SurfaceView(context); addView(mSurfaceView); } public void surfacemetod(SurfaceView surface){ //mSurfaceView = new SurfaceView(context); //addView(mSurfaceView); // Install a SurfaceHolder.Callback so we get notified when the // underlying surface is created and destroyed. mHolder = mSurfaceView.getHolder(); mHolder.addCallback(this); mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } public void setCamera(Camera camera) { mCamera = camera; if (mCamera != null) { mSupportedPreviewSizes = mCamera.getParameters().getSupportedPreviewSizes(); requestLayout(); } }
Después de este código hay todos los métodos en el enlace anterior que no copie para ahorrar espacio.
La pregunta es que cuando ejecuto el código mPreviewSize.with y mPreviewSize.height
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { // Now that the size is known, set up the camera parameters and begin // the preview. Camera.Parameters parameters = mCamera.getParameters(); parameters.setPreviewSize(mPreviewSize.width, mPreviewSize.height); requestLayout(); mCamera.setParameters(parameters); mCamera.startPreview(); }
son nulos y obtengo un cierre de fuerza
Esencialmente se ve como no se mete dentro de OnMeasure para resolverlos. ¿Alguna idea?
Este es el registro:
02-16 13:54:26.068: ERROR/AndroidRuntime(24374): FATAL EXCEPTION: main 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): java.lang.NullPointerException 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at com.dashboard.camera.lite.Preview.surfaceChanged(Preview.java:162) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at android.view.SurfaceView.updateWindow(SurfaceView.java:554) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at android.view.SurfaceView.dispatchDraw(SurfaceView.java:341) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at android.view.ViewGroup.drawChild(ViewGroup.java:1638) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at android.view.ViewGroup.drawChild(ViewGroup.java:1638) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at android.view.View.draw(View.java:6796) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at android.widget.FrameLayout.draw(FrameLayout.java:354) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at android.view.ViewGroup.drawChild(ViewGroup.java:1640) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1367) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at android.view.View.draw(View.java:6796) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at android.widget.FrameLayout.draw(FrameLayout.java:354) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1894) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at android.view.ViewRoot.draw(ViewRoot.java:1432) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at android.view.ViewRoot.performTraversals(ViewRoot.java:1174) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at android.view.ViewRoot.handleMessage(ViewRoot.java:1752) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at android.os.Handler.dispatchMessage(Handler.java:99) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at android.os.Looper.loop(Looper.java:123) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at android.app.ActivityThread.main(ActivityThread.java:4627) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at java.lang.reflect.Method.invokeNative(Native Method) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at java.lang.reflect.Method.invoke(Method.java:521) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 02-16 13:54:26.068: ERROR/AndroidRuntime(24374): at dalvik.system.NativeStart.main(Native Method)
- Vista previa de la cámara Android a la imagen final
- Vista previa de la cámara Android Cambiar entre las cámaras
- GetSupportedPreviewSize devuelve el ancho y la altura inversos
- Tutorial de previsualización de la cámara Android
- StartPreview falló pero no todos los dispositivos
- Vista previa de cámara negra en Android 7
- ¿Cuándo Android toma su reciente captura de pantalla del selector de aplicaciones?
- Problemas con Gallery.getChildAt (int position)
puedes pasar el registro Predigo que tienes un problema con mPreview.width / height – es propably algún valor incorrecto.
- Android: ¿Es posible cortar / pegar SDK android y usarlo?
- Tengo suficiente memoria pero estoy recibiendo el error INSTALL_FAILED_INSUFFICIENT_STORAGE