Android google VR全景图导航
       VR导航我们接入的是google vr的,其官方网站为https://github.com/googlevr/gvr-android-sdk,其VR素材地址为http://p0w477exg.bkt.clouddn.com/andes.jpg,下面看下集成的写法:
一.所演示的样列为android studio新建一个空activity的只含有activity_main.xml布局文件的工程
1.工程build.gradle里面集成VR全景视图所依赖的包
//    VR所依赖的包compile 'com.google.vr:sdk-panowidget:1.30.0'

2.AndroidManifest.xml清单文件里面集成赋予网络权限,内存控制

//赋予网络权限<uses-permission android:name="android.permission.INTERNET"/>        
        android:largeHeap="true"//内存控制

我的AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="palmartourism.iwiteks.www.hiqdn">//赋予网络权限<uses-permission android:name="android.permission.INTERNET"/><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/Theme.AppCompat.Light.NoActionBar"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

3.activity_main.xml加入

<com.google.vr.sdk.widgets.pano.VrPanoramaViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/vr_pv" ></com.google.vr.sdk.widgets.pano.VrPanoramaView>

4.素材放置于src/main/assets/andes.jpg

5.MainActivity的写法
package palmartourism.iwiteks.www.hiqdn;import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;import com.google.vr.sdk.widgets.pano.VrPanoramaEventListener;
import com.google.vr.sdk.widgets.pano.VrPanoramaView;import java.io.IOException;
import java.io.InputStream;import palmartourism.iwiteks.www.util.StatusBarUtil;/*** Created by spirits on 2018/1/16.*/public class MainActivity extends AppCompatActivity {private VrPanoramaView vrPanoramaView;private ImageTask imageTask;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);StatusBarUtil.transparentStatusBar(this);setContentView(R.layout.activity_vr);//全景图片的浏览功能//步骤一。下载github上google开源 vr-sdk//1.1.导入到我们的工作空间 common,commonwidget  panowidget//1.2.依赖到我们的项目中//1.3.依赖sdk中找不到的api//1.4.准备一些测试素材 放置在assets目录下面 例:assets/a.jpg//1.5.开启内存设置  android:largeHeap="true"尽可能使应用使用最大内存//步骤二。将全景图片加载到内存中,再显示在控件//2.1.布局全景图片显示控件vrPanoramaView = (VrPanoramaView) findViewById(R.id.vr_pv);//删除不需要连接 信息按钮禁掉vrPanoramaView.setInfoButtonEnabled(false);//隐藏全屏按钮vrPanoramaView.setFullscreenButtonEnabled(false);//设置隐藏立体模型的按钮vrPanoramaView.setStereoModeButtonEnabled(false);//开启手触模式vrPanoramaView.setTouchTrackingEnabled(true);//眼镜模式按钮禁掉vrPanoramaView.setStereoModeButtonEnabled(false);//2.2.所有的图片在内存表示成BitmapimageTask = new ImageTask();imageTask.execute();//vrPanoramaView.loadImageFromBitmap(bitmap);}//2.3.AsyncTask异步加载private class ImageTask extends AsyncTask<Void, Void, Bitmap> {@Overrideprotected Bitmap doInBackground(Void... params) {try {InputStream inputStream = getAssets().open("andes.jpg");//2.4.使用BitmapFactory 可以sd ,byte[] inputstream-->BitmapBitmap bitmap = BitmapFactory.decodeStream(inputStream);return bitmap;} catch (IOException e) {e.printStackTrace();}return null;}@Overrideprotected void onPostExecute(Bitmap bitmap) {super.onPostExecute(bitmap);if (bitmap != null) {//loadImageFromBitmap加载bitmap到显示控件 参1.bitmap 参2 显示参数的封装VrPanoramaView.Options option = new VrPanoramaView.Options();//立体图片:上半张显示在左眼,下半张显示在右眼//TYPE_STEREO_OVER_UNDER  TYPE_MONOoption.inputType = VrPanoramaView.Options.TYPE_MONO;VrPanoramaEventListener listener=new VrPanoramaEventListener(){@Overridepublic void onLoadSuccess() {super.onLoadSuccess();//成功的情况提示下现在要进行全景图片的展示
//                        Toast.makeText(MainActivity.this, "进入vr图片", Toast.LENGTH_SHORT).show();}@Overridepublic void onLoadError(String errorMessage) {super.onLoadError(errorMessage);//处理加载失败的情况Toast.makeText(MainActivity .this, "E:"+errorMessage, Toast.LENGTH_SHORT).show();}};//2.5.增加加载出错的业务逻辑处理vrPanoramaView.setEventListener(listener);//2.6.全屏展示
//                vrPanoramaView.setDisplayMode(VrWidgetView.DisplayMode.FULLSCREEN_MONO);//2.4.加载bitmap到控件上显示vrPanoramaView.loadImageFromBitmap(bitmap, option);}}}//步骤三。优化程序细节 ,页面退到后台,暂停显示 ,页面显示在屏幕 恢复显示。销毁页面,释放全景图片//3.1 页面退到后台,暂停显示@Overrideprotected void onPause() {super.onPause();if(vrPanoramaView!=null){vrPanoramaView.pauseRendering();}}//3.2 页面显示在屏幕 恢复显示@Overrideprotected void onResume() {super.onResume();if(vrPanoramaView!=null){vrPanoramaView.resumeRendering();}}//3.3.销毁页面,释放全景图片@Overrideprotected void onDestroy() {super.onDestroy();if (vrPanoramaView != null) {vrPanoramaView.shutdown();}if (imageTask != null && !imageTask.isCancelled()) {imageTask.cancel(true);imageTask = null;}}
}

Android google VR全景图导航相关推荐

  1. Google VR技术大揭秘

    VR 虚拟现实(Virtual Reality)技术是一种可以创建和体验虚拟世界的计算机仿真系统,它利用计算机生成一种模拟环境,是一种多源信息融合的.交互式的三维动态视景和实体行为的系统仿真, 使用户 ...

  2. 二、VR全景图显示器开发 ---- Android VR视频/Google VR for Android /VR Pano/VR Video

    原文地址: http://blog.csdn.net/qq_24889075/article/details/52128463 http://www.jianshu.com/p/104251a3153 ...

  3. 【Android -- 开源库】Google VR 给用户呈现 360° 全景图

    前言 VR 即 Virtual Reality 虚拟现实. 虚拟现实技术是一种可以创建和体验虚拟世界的计算机仿真系统它利用计算机生成一种模拟环境是一种多源信息融合的交互式的三维动态视景和实体行为的系统 ...

  4. 一、初识GVR ---- Android VR视频/Google VR for Android /VR Pano/VR Video

    原文链接: http://blog.csdn.net/qq_24889075/article/details/52118633 http://www.jianshu.com/p/09c0822b9d1 ...

  5. google vr 入门之VrPanoramaView制作全景图列表,apm应用性能管理

    思路就是这么简单,这里的全景图我们需要对应的全景图控件来显示,google vr 中有对应的全景图控件VrPanoramaView,google vr 的核心是其父类VrWidgetView,VrPa ...

  6. Android VR 全景图

    Android VR 全景图  效果图 谷歌的VR: 虚拟实境(英语:virtual reality,缩写为VR),简称虚拟技术,也称虚拟环境,是利用电脑模拟产生一个三维空间的虚拟世界,提供用户关于视 ...

  7. Google VR Views实战(VR全景图播放器)

    Google VR SDK 支持daydream和Cardboard. 环境搭建 android studio 环境,2.2.2或者更高 android sdk版本在25以上 gradle 23.0. ...

  8. 五、VR视频播放器开发 ---- Android VR视频/Google VR for Android /VR Pano/VR Video

    simplevideowidget 如果没有看上一篇文章的请先看完再来看这一篇吧,有写重复的就不介绍了 AndroidManifest 上一篇文章有提到,其实这里也没有什么特别的 build.grad ...

  9. 三、VR视频播放器开发 ---- Android VR视频/Google VR for Android /VR Pano/VR Video

    原文地址: http://blog.csdn.net/qq_24889075/article/details/52133170 http://www.jianshu.com/p/82163453ed3 ...

最新文章

  1. Java中非法参数的异常_Java中的异常
  2. 手把手教学电瓶车进电梯检测、多类别车辆追踪、异常行为检测产业级应用
  3. Python计算 1的9999999次方,不到1s就得出答案!是如何处理的?
  4. Leet Code OJ 388. Longest Absolute File Path [Difficulty: Medium]
  5. usb转并口支持linux,使用PCI转并口实现SJF刷写嵌入式开发板
  6. 数据库的四个范式之间的区别
  7. linux清理内存的命令
  8. select2插件设置选中值并显示的问题
  9. Android 四大组件学习之BroadcastReceiver四
  10. discuz字典doc_Discuz! X2.5数据字典
  11. 前嗅ForeSpider教程:采集新浪新闻
  12. 单片机微型计算机原理及接口技术,单片机微型计算机原理及接口技术课后习题答案第4章.docx...
  13. c语言20s计数器,计数器延时程序与级联程序的plc梯形图实现
  14. 计划驱动的软件过程:waterfall model(瀑布模型,或称之为SDLC模型)
  15. 基于node.js和Vue的运动装备网上商城
  16. Python+Django+Mysql实现在线电影推荐系统 基于用户、项目的协同过滤推荐在线电影系统 代码实现 源代码下载
  17. SwiftUI捕获键盘提交动作在iOS15之前和之后的兼容实现
  18. 使用谷歌的服务器训练
  19. TeamViewer 连接后无法操作的解决方法
  20. 基于人脸识别的人脸考勤机实现(训练、测试、部署)

热门文章

  1. nodejs实战入门教程
  2. 文件分片上传【前端】
  3. docker<应用分享>--本地镜像上传dockerhub、从dockerhub拉取镜像
  4. echarts圆环数据占比
  5. android studio的GearVR应用开发(二)、一个简单的VR app(Oculus官方GearVR开发教程,翻译转载)
  6. 怎样才能拿到字节跳动的投资?从89个案例中,寻找3大“字节风格”
  7. Rust中的iter(), into_iter(), iter_mut()
  8. 设计一个日期类(CDate),属性为年、月、日,成员函数为设置当前日期setDate(…)、当前日期加一天increaseDate()和显示日期showDate()
  9. windows卸载mysql,重新安装
  10. Android屏蔽系统的蓝牙功能