gpt4 book ai didi

android - Cordova - 如何在 Android 上显示 360 度图像

转载 作者:搜寻专家 更新时间:2023-11-01 07:54:44 25 4
gpt4 key购买 nike

我正在构建一个从服务器获取 JSON 数据的 cordova 应用程序。我收到的一条信息是360在线图片的URL。我需要在 Photo Sphere 照片查看器(适用于 Android)中显示这些图像。我看过这个API (需要 cordova google play 服务插件)和 this库,但我还没有成功地在应用程序中使用它们。有谁知道这样做的方法吗?我可以在 native Intent 中打开那种类型的图像吗?提前致谢

最佳答案

实际上我设法让它工作了。我正在发布解决方案,以防其他人发现它有用。还为可以找到的插件创建了一个插件 here

创建一个简单的插件,我从 cordova 调用插件类,它使用 AsyncTask 下载来自 URL 的图像和 onPostExecute 我调用显示查看器的 Panorama Activity 。

Intent intent = new Intent(cordova.getActivity().getApplicationContext(), PanoramaActivity.class);
intent.putExtra("filepath", file.getAbsolutePath());
cordova.getActivity().startActivity(intent);.

全景 Activity .java

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks;
import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;
import com.google.android.gms.common.api.ResultCallback;
import com.google.android.gms.panorama.Panorama;
import com.google.android.gms.panorama.PanoramaApi.PanoramaResult;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import java.io.File;
import android.os.Environment;

public class PanoramaActivity extends Activity implements ConnectionCallbacks, OnConnectionFailedListener{
File file;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mClient = new GoogleApiClient.Builder(this, this, this)
.addApi(Panorama.API)
.build();

Intent i= getIntent();
Bundle b = i.getExtras();
file = new File(b.getString("filepath"));
@Override
public void onStart() {
super.onStart();
mClient.connect();
}

@Override
public void onConnected(Bundle connectionHint) {
Uri uri = Uri.fromFile(file);//Uri.parse(path);//Uri.fromFile(file);
Panorama.PanoramaApi.loadPanoramaInfo(mClient, uri).setResultCallback(
new ResultCallback<PanoramaResult>() {
@Override
public void onResult(PanoramaResult result) {
if (result.getStatus().isSuccess()) {
Intent viewerIntent = result.getViewerIntent();
Log.i(TAG, "found viewerIntent: " + viewerIntent);
if (viewerIntent != null) {
startActivity(viewerIntent);
}
} else {
Log.e(TAG, "error: " + result);
}
}
});
}

@Override
public void onConnectionSuspended(int cause) {
Log.i(TAG, "connection suspended: " + cause);
}

@Override
public void onConnectionFailed(ConnectionResult status) {
Log.e(TAG, "connection failed: " + status);
}

@Override
public void onStop() {
super.onStop();
mClient.disconnect();
Log.e(TAG, "ON Stop ");
}

关于android - Cordova - 如何在 Android 上显示 360 度图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29626949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com