我一直在使用Xamarin.GooglePlayServices.Panorama 60.1142.0-rc1包来显示简单的全屏全景活动。以下代码成功地从片段开始全景活动:
public async void OnConnected(Bundle connectionHint)
{
Android.Net.Uri uri = Android.Net.Uri.Parse("android.resource://" + Activity.PackageName + "/" + Resource.Raw.pano1);
var panoramaResult = await Android.Gms.Panorama.PanoramaClass.PanoramaApi.LoadPanoramaInfoAsync( googleApiClient, uri);
if(panoramaResult.Status.IsSuccess)
{
if(panoramaResult.ViewerIntent != null)
{
StartActivity(panoramaResult.ViewerIntent);
}
else
{
Activity.RunOnUiThread(() => {
Toast.MakeText(Activity, "WTF?!", ToastLength.Short).Show();
});
}
}
}
但是,如果我尝试从资源或URL加载相同的全景jpg,如下所示:
Android.Net.Uri uri = Android.Net.Uri.Parse("file:///android_asset/panorama/pano1.jpg");
或者像这样:
Android.Net.Uri uri = Android.Net.Uri.Parse("https://raw.githubusercontent.com/xzs424/RBCPrototypeChallenge/master/PanoramaSampleActivity/res/raw/pano1.jpg");
panoramaResult.ViewerIntent为null,并且没有要启动的活动。文档说如果图像不是Google全景图,则ViewerIntent应为null,但代码的所有三部分都使用相同的图像,只有它位于不同的位置。那么,有没有办法从资源中的原始文件夹以外的任何地方加载全景图像?请注意,我还尝试了最新的稳定Xamarin.GooglePlayServices.Panorama,在撰写本文时为42.1021.1,没有运气。