Как реализовать функциональность камеры с дополнительными параметрами (например, Panorama)?

Меня интересует панорама. Есть ли способ открыть собственное приложение для камеры (расширенная версия), чтобы пользователь мог переключаться между обычным фото и панорамным видом? Возможно ли вообще или я должен прекратить попытки?


Вот код, который я использую прямо сейчас:

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

Это то, что в настоящее время происходит:

enter image description hereenter image description here

И это то, что мне нужно достичь:

enter image description here


Спасибо!

Ответ 1

По-видимому, пока невозможно использовать режимы панорамы или фотосферы непосредственно из приложения, поскольку они зависят от проприетарных классов, предоставляемых Google. Возможно, это будет возможно в следующей версии Android API.

Смотрите Как открыть камеру непосредственно в режиме панорамы/фотосферы? или Как открыть фотосферную камеру?

Ответ 2

Нет стандартного способа сделать это. AFAIK Panorama, Photoshere являются собственными особенностями Gallery3d (предоставляется Google) package com.google.android.gallery3d. Это зависит от прошивку устройства.

в файле манифеста

   <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>

в вашей деятельности

 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);

Ответ 3

Вы можете открыть режим параномы, используя ниже код

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