Как установить режим фотосфера при открытии панорамы Android
Я застреваю с проблемой, когда я хочу открыть фотоснимок с помощью приложения для Android. Действительно, я могу открыть его, но приложение показывает своего рода предварительный просмотр фотосферы (она прокручивает картинку слева направо). Я хочу, чтобы мое приложение открывало фотосферу в режиме акселерометра (режим, в котором нам нужно повернуть телефон, чтобы показать всю картинку), не нажимая кнопку внизу справа.
Я использую этот код, чтобы открыть панораму:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setComponent(new ComponentName("com.google.android.gms", "com.google.android.gms.panorama.PanoramaViewActivity"));
intent.setData(Uri.parse("file://" + Environment.getExternalStorageDirectory() + "/DCIM/Camera/PANO_20131209_130755.jpg"));
startActivity(intent);
Заранее спасибо,
1 ответ
Надеюсь, что следующее поможет:
public class YourActivity extends Activity implements ConnectionCallbacks,
OnConnectionFailedListener {
private GoogleApiClient gacClient;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gacClient= new GoogleApiClient.Builder(this, this, this)
.addApi(Panorama.API)
.build();
}
@Override
public void onStart() {
super.onStart();
gacClient.connect();
}
@Override
public void onConnected(Bundle connectionHint) {
Uri uri = Uri.parse("file://" + Environment.getExternalStorageDirectory() + "/DCIM/Camera/PANO_20131209_130755.jpg");
Panorama.PanoramaApi.loadPanoramaInfo(gacClient, uri).setResultCallback(
new ResultCallback<PanoramaResult>() {
@Override
public void onResult(PanoramaResult result) {
Intent i;
if (result.getStatus().isSuccess() && (i = result.getViewerIntent()) != null) {
startActivity(i);
} else {
// Handle unsuccessful result
}
}
});
}
@Override
public void onConnectionSuspended(int cause) {
// Handle connection being suspended
}
@Override
public void onConnectionFailed(ConnectionResult status) {
// Handle connection failure.
}
@Override
public void onStop() {
super.onStop();
gacClient.disconnect();
}
}
Ниже приведена ссылка и пример библиотеки для использования PhotoSphere
без Google+
:
https://github.com/kennydude/photosphere
Intent i = new Intent(MainActivity.this, SphereViewer.class);
i.setData(Uri.parse("file://" + Environment.getExternalStorageDirectory() + "/DCIM/Camera/PANO_20131209_130755.jpg"));
startActivity(i);
PhotoSphere использует гироскоп, а не акселерометр, однако я уверен, что вы можете использовать второе решение и добавить свои собственные функции акселерометра.