android vr全景图片初探(仿微博360全景图片的实现)

android vr全景图片初探(仿微博360全景图片的实现)

最近逛微博的时候,看见有个360全景图很酷炫,想着自己实现一下,然后查资料发现实现的方法很多,,最终我决定用google开源的vr实现,毕竟我谷歌大法好,英文好的可以直接去看官网,官方地址:https://developers.google.com/vr/android/samples/vrview(需要科学上网)。
废话不多说,,先看效果图:

接下来就看是怎么实现的:

首先,添加依赖:

compile 'com.google.vr:sdk-panowidget:1.80.0'

然后,在布局xml里面用:

<com.google.vr.sdk.widgets.pano.VrPanoramaView
  android:id="@+id/pano_view"
  android:layout_margin="5dip"
  android:layout_width="match_parent"
  android:scrollbars="@null"
  android:layout_height="250dip" />

最后,在java中设置相关参数就好了:

panoWidgetView.setEventListener(new ActivityEventListener());
    paNormalOptions = new VrPanoramaView.Options();
//  mVrPanoramaView.setFullscreenButtonEnabled (false); //隐藏全屏模式按钮
    panoWidgetView.setInfoButtonEnabled(false); //设置隐藏最左边信息的按钮
    panoWidgetView.setStereoModeButtonEnabled(false); //设置隐藏立体模型的按钮
    panoWidgetView.setEventListener(new ActivityEventListener()); //设置监听
    paNormalOptions.inputType = VrPanoramaView.Options.TYPE_MONO;
    //加载本地的图片源
    panoWidgetView.loadImageFromBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.andes2), paNormalOptions);

经过上面的3步,我们就可以实现360全景图片的效果了,我们发现VrPanoramaView.Options这个参数有不同的数值,具体是什么意思呢?

下面是官方的解释:

public static final int TYPE_MONO = 1;
图像被预期以覆盖沿着其水平轴360度,而垂直范围是根据图像的宽高比来计算。例如,如果一个1000x250像素的图像,给出所述全景将覆盖360x90度与垂直范围是-45至+45度。


public static final int TYPE_STEREO_OVER_UNDER = 2;
包含两个大小相等的投影 全景图垂直叠加。顶部图像被显示给左眼、底部图像被显示给右眼。图像将覆盖沿水平轴360度,而垂直范围是根据图像的宽高比来计算。例如,如果一个1000x500像素的图像中。

看完上面的解释是不是晕了,,接下来我会画个图让你一目了然。

TYPE_MONO:

1505721980(1).jpg

TYPE_STEREO_OVER_UNDER:

andes2.jpg

这下子明白了吧,图片的不同,选择的不同的模式,就可以了。

Demo下载
简书地址

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值