2014-01-06 49 views
13

當我想用我的android應用程序打開photosphere圖片時遇到問題。事實上,我可以打開它,但是應用程序顯示了一個對光球的預覽(它從左到右滾動圖片)。我希望我的應用程序在不點擊右下角的按鈕的情況下使用acceloremeter模式(我們需要打開手機顯示整個圖片的模式)打開光圈。如何在打開全景圖時設置photosphere模式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); 

由於提前,

+0

'「file://」+「/ sdcard' - 這是不好的做法,參見'環境'類 –

+0

是的,我知道,我只是把它作爲測試。 – benoitm76

+0

提供了滾動你的圖像的按鈕的代碼,請 – ProllyGeek

回答

3

希望下面的以下幫助:

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

光球使用陀螺儀和加速度計沒有,但是我相信你可以使用第二個解決方案,並添加自己的加速功能。

+0

OP說:「我希望我的應用程序打開photosphere使用acceloremeter模式(我們需要打開手機顯示整個圖片所需的模式),而不點擊右下方的按鈕。「看起來您的解決方案打開了光圈預覽模式,而不是加速計模式。 – aga

+0

請參見底部的編輯部分。 –

+1

我的意思是OP想要在模式下啓動全景模式,引用「我們需要打開手機以顯示整個圖片而不點擊右下角的按鈕」的模式。您的解決方案就像OP解決方案一樣在預覽模式下打開全景圖(唯一的區別是您的解決方案適用於更新的API)。 – aga

相關問題