Android 谷歌推荐的VR实现方式
来源:互联网 发布:网络电影情迷冯家屯 编辑:程序博客网 时间:2024/06/07 00:38
谷歌有专门的SDK来完成VR,我这次以一个全景图片的例子来说一下这个SDK实现VR的基本过程,首先全景图片就是百度地图里的那样,能够看到周围环境360的图片。
添加依赖
compile 'com.google.vr:sdk-panowidget:1.80.0'
添加权限
<uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/><uses-permission android:name="android.permission.READ_PHONE_STATE"/><uses-permission android:name="android.permission.GET_TASKS"/>
实现代码
public class GoogleVRActivity extends AppCompatActivity { private VrPanoramaView mVrPanoramaView; private VrPanoramaView.Options paNormalOptions; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_google_vr); initVrPaNormalView(); } @Override protected void onPause() { super.onPause(); mVrPanoramaView.pauseRendering(); } @Override protected void onResume() { super.onResume(); mVrPanoramaView.resumeRendering(); } @Override protected void onDestroy() { // Destroy the widget and free memory. super.onDestroy(); mVrPanoramaView.shutdown(); } //初始化VR图片 private void initVrPaNormalView() { mVrPanoramaView = (VrPanoramaView) findViewById(R.id.mVrPanoramaView); paNormalOptions = new VrPanoramaView.Options(); paNormalOptions.inputType = VrPanoramaView.Options.TYPE_STEREO_OVER_UNDER;// mVrPanoramaView.setFullscreenButtonEnabled (false); //隐藏全屏模式按钮 mVrPanoramaView.setInfoButtonEnabled(false); //设置隐藏最左边信息的按钮 mVrPanoramaView.setStereoModeButtonEnabled(false); //设置隐藏立体模型的按钮 mVrPanoramaView.setEventListener(new ActivityEventListener()); //设置监听 //加载本地的图片源 mVrPanoramaView.loadImageFromBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.andes), paNormalOptions); //设置网络图片源// panoWidgetView.loadImageFromByteArray(); } private class ActivityEventListener extends VrPanoramaEventListener { @Override public void onLoadSuccess() {//图片加载成功 } @Override public void onLoadError(String errorMessage) {//图片加载失败 } @Override public void onClick() {//当我们点击了VrPanoramaView 时候触发 super.onClick(); } @Override public void onDisplayModeChanged(int newDisplayMode) { //改变显示模式时候出发(全屏模式和纸板模式) super.onDisplayModeChanged(newDisplayMode); } }}
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dip" android:id="@+id/main_layout" android:orientation="vertical" > <TextView style="@style/ContentText" android:id="@+id/title" android:textSize="@dimen/title_text_size" android:textStyle="bold" android:textColor="@color/colorAccent" android:text="第二种谷歌官方VR演示" /> <TextView style="@style/ContentText" android:id="@+id/subtitle" android:textColor="@color/colorAccent" android:textSize="@dimen/caption_text_size" android:text="谷歌纸壳子demo" /> <TextView style="@style/ContentText" android:id="@+id/paragraph1" android:textColor="@color/colorAccent" android:textSize="@dimen/paragragh_text_size" android:text="鱼和熊掌不可兼得" /> <com.google.vr.sdk.widgets.pano.VrPanoramaView android:id="@+id/mVrPanoramaView" android:layout_width="match_parent" android:layout_height="250dip"/> </LinearLayout></ScrollView>
VrPanoramaView这个类和Activity有着类似的生命周期,全屏显示是它自己设置的,这个VR 的SDK完成度很高,可以多去参考。
再见。
阅读全文
0 0
- Android 谷歌推荐的VR实现方式
- Android 推荐的自定义 Dialog 实现方式
- 通过Android实现VR视频的播放
- Ioc的推荐实现方式
- Android各个activity之间(页面之间)的切换实现方式(推荐第一种方式)
- VR的简单实现
- Android VR的使用
- 谷歌实现移动VR“白日梦”
- 通过Android实现简单的VR全景图
- Android开发中Google VR全景的实现
- 【虚拟现实】Unity3D+VR的实现
- VR 的头部跟踪实现
- VR的原理和实现
- VR的Crop功能实现
- VR的原理和实现
- VR Android播放器实现(一)
- VR Android播放器实现(二)
- Insta360 Nano成为Facebook官方推荐的VR全景相机
- ssd准备自己的数据集进行训练遇见错误和解决方法
- BZOJ4537 [Hnoi2016]最小公倍数 分块+可撤销并查集
- 编写目标跟踪程序时出现Tracher未定义的错误-->opencv_contrib编译(Windows)
- 线性表简介
- Python的join函数
- Android 谷歌推荐的VR实现方式
- TP5 获取数据集记录数
- 这部电影平均每秒成本18万,科幻片都学它,《阿凡达2》被迫延期
- shader之各种空间与光照
- 2017年前端面试题整理汇总100题
- 大页面和透明大页面
- 二叉树的基本概念、存储结构、和创建方法
- Oracle恢复数据库管理员密码
- 测试