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

Estoy interesado principalmente en la opción de panorama. ¿Hay una manera de abrir la aplicación de cámara nativa (la versión mejorada), por lo que el usuario puede cambiar entre la foto normal y 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:

Introduzca aquí la descripción de la imagenIntroduzca aquí la descripción de la imagen

Y esto es lo que necesito lograr:

Introduzca aquí la descripción de la imagen


¡Gracias!

Aparentemente, todavía no es posible utilizar los modos panorámico o fotosférico directamente desde una aplicación, ya que dependen de las clases propietarias proporcionadas por Google. Tal vez será posible en la próxima versión de Android API.

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

No hay manera estándar de hacerlo. AFAIK Panorama, Photoshere son las características propietarias de Gallery3d (proporcionado por Google) paquete com.google.android.gallery3d. Depende del firmware del dispositivo.

En el archivo de 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 su 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 utilizando el código a continuación

  Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA); startActivity(intent); 
  • Escribir objetos a los paquetes
  • DeadObjectException en la aplicación android
  • Instancias android.os.StrictMode = 2; Límite = 1
  • Cálculo de intersecciones entre segmentos de línea
  • El método getString (int) no está definido para el tipo Apps
  • ¿Cómo poner Android a modo de espera mediante programación?
  • ¿Cómo puede una aplicación Android funcionar como un controlador remoto a una aplicación de escritorio? (Spotify)
  • Eclipse: adt no pudo instanciar la clase com.android.ide.eclipse.adt.internal.editors.common.CommonXmlEditor
  • ¿por qué mi método de comparación arrojar excepción - método de comparación viola su contrato general!
  • ¿Puedo confiar en el recolector de basura para detener un AsyncTask?
  • Formas de crear objetos JSON en Java
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.