studio picture manejo intent camara app java android camera android-camera panoramas

java - picture - surfaceview android camera



¿Cómo implementar la funcionalidad de la cámara con opciones adicionales(como Panorama)? (3)

Estoy interesado principalmente en la opción de panorama. ¿Hay alguna manera de abrir la aplicación nativa de la cámara (la versión mejorada) para que el usuario pueda alternar entre la foto normal y la vista panorámica? ¿Es posible o debo dejar de intentarlo?

Aquí está el código que estoy usando ahora mismo:

Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(i, CAMERA_REQUEST);

Esto es lo que sucede actualmente:

Y esto es lo que necesito lograr:

¡Gracias!


Aparentemente, aún no es posible utilizar los modos panorámicos o de fotosfera directamente desde una aplicación, ya que dependen de clases propietarias proporcionadas por Google. Tal vez sea posible en la próxima versión de la API de Android.

Consulte ¿Cómo abrir la cámara directamente en modo panorama / fotosfera? o ¿Cómo abrir la cámara fotosfera?


No hay una forma estándar de hacerlo. AFAIK Panorama, Photoshere son características patentadas del paquete com.google.android.gallery3d de Gallery3d (provisto por Google). Depende del firmware del dispositivo.

en archivo manifiesto

<activity clearTaskOnLaunch="true" screenOrientation="0" name="com.google.android.apps.lightcycle.ProtectedPanoramaCaptureActivity" theme="resource_id:0x1030007" configChanges="1184" label="resource_id:0x7f0a00b2" windowSoftInputMode="35" taskAffinity="com.google.android.camera"> <intent-filter> <action name="android.intent.action.MAIN"> </action> </intent-filter> </activity>

en tu actividad

Intent res = new Intent(); String mPackage = "com.google.android.gallery3d"; String mClass = "com.google.android.apps.lightcycle.ProtectedPanoramaCaptureActivity"; res.setComponent(new ComponentName(mPackage,mClass)); startActivity(res);


Puede abrir el modo paranoma usando el código siguiente

Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA); startActivity(intent);