利用Google VR教你打造全景圖片展示

本文章主要參考Google VR中的文檔,如果您能流利的讀懂英文開發(fā)文檔琳省,可以去官網(wǎng)自行查看稀拐。

1.介紹VR View

VR view allows you to embed 360 degree VR media into websites on desktop and mobile, and native apps on Android and iOS. This technology is designed to enable developers of traditional apps to enhance the apps with immersive content.

VR視圖允許你將360度的VR媒體嵌入桌面和移動的網(wǎng)站赡鲜,以及Android和iOS上的原生應用吝镣。這項技術(shù)旨在使傳統(tǒng)應用程序的開發(fā)者能夠通過沉浸式的內(nèi)容來增強應用程序。

VR view supports mono and stereo 360 images and videos. Images and video need to be stored in the equirectangular-panoramic (equirect-pano) format, which is a common format supported by many capture solutions.

VR視圖支持mono和立體圖像和視頻泉蝌。圖像和視頻需要存儲在equi矩形-全景(equirect - pano)格式中歇万,這是許多捕獲解決方案支持的公共格式。

Image規(guī)格

  • VR查看圖像可以保存為PNG梨与,JPEG或GIF堕花。Google建議使用JPEG改進壓縮。
  • 為了獲得最大的兼容性和性能粥鞋,圖像尺寸應該是2的倍數(shù)(例如缘挽,2048或4096)。
  • 單個圖像應為2:1縱橫比(例如4096×2048)呻粹。
  • 立體圖像應為1:1縱橫比(例如4096×4096)壕曼。
Mono單個圖像 Stereo立體圖像
vr-1.jpg
vr-2.jpg

先來看看效果:

項目運行效果圖

2.使用VrPanoramaView嵌入全景圖像

1.build.gradle

在app下的build.gradle中添加panowidget庫

    dependencies {
        compile 'com.google.vr:sdk-panowidget:1.10.0'
    }

2.AndroiManifest.xml

在使用VrPanoramaView的Acitivity的intent-filter節(jié)點添加過濾分類:
com.google.intent.category.CARDBOARD : 兼容Cardboard紙盒

<activity android:name=".VrPanoramaActivity"  >  
        <intent-filter>  
            <category android:name="com.google.intent.category.CARDBOARD" />  
        </intent-filter>  
    </activity>  

3.布局文件

只需在布局中添加一個控件

 <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" />

4.加載全景圖

A.初始化控件

VrPanoramaView vrPanView = (VrPanoramaView) findViewById(R.id.vr_pan_view);

B.讀取圖片

我們提前將一張選擇好的全景圖放在assets目錄中,aa.jpg,將圖片轉(zhuǎn)為bitmap

/**獲取assets中的圖片等浊,轉(zhuǎn)為流**/
InputStream open = null;
try {
    open = getAssets().open("aa.jpg");
} catch (IOException e) {
    e.printStackTrace();
}
Bitmap bitmap = BitmapFactory.decodeStream(open);

C.設置VrPanoramaView.Options

/**VrPanoramaView.Options 設置**/
VrPanoramaView.Options options = new VrPanoramaView.Options();
options.inputType = VrPanoramaView.Options.TYPE_MONO;

VrPanoramaView.Options有兩種類型:

  • TYPE_MONO 360度單圖(2:1縱橫比)
    圖像被預期以覆蓋沿著其水平軸360度腮郊,而垂直范圍是根據(jù)圖像的寬高比來計算。例如筹燕,如果一個1000x250像素的圖像轧飞,給出所述全景將覆蓋360x90度與垂直范圍是-45至+45度。

  • TYPE_STEREO_OVER_UNDER 立體圖(1:1縱橫比)
    包含兩個大小相等的投影 全景圖垂直疊加撒踪。頂部圖像被顯示給左眼过咬、底部圖像被顯示給右眼。圖像將覆蓋沿水平軸360度制妄,而垂直范圍是根據(jù)圖像的寬高比來計算掸绞。例如,如果一個1000x500像素的圖像中給出(即1000x250像素每個眼睛)耕捞,全景將覆蓋360x90度與垂直范圍是-45至+45度衔掸。

D.加載全景圖

vrPanView.loadImageFromBitmap(bitmap, options);

E.設置加載監(jiān)聽VrPanoramaEventListener

/**設置加載圖片監(jiān)聽**/
vrPanView.setEventListener(new VrPanoramaEventListener() {
    /**
    * 顯示模式改變回調(diào)
    * 1.默認
    * 2.全屏模式
    * 3.VR觀看模式,即橫屏分屏模式
    */
    @Override
    public void onDisplayModeChanged(int newDisplayMode) {
        super.onDisplayModeChanged(newDisplayMode);
        Log.d(TAG, "onDisplayModeChanged()->newDisplayMode=" + newDisplayMode);
    }

    /**
    * 加載VR圖片失敗回調(diào)
    */
    @Override
    public void onLoadError(String errorMessage) {
        super.onLoadError(errorMessage);
        Log.d(TAG, "onLoadError()->errorMessage=" + errorMessage);
    }

    /**
    * 加載VR圖片成功回調(diào)
    */
    @Override
    public void onLoadSuccess() {
        super.onLoadSuccess();
        Log.d(TAG, "onLoadSuccess->圖片加載成功");
    }

    /**
    * 點擊VR圖片回調(diào)
    */
    @Override
    public void onClick() {
        super.onClick();
        Log.d(TAG, "onClick()");
    }
});

F.在onPause俺抽、onResume敞映、onDestroy中做出相應處理

@Override
protected void onPause() {
    super.onPause();
    vrPanView.pauseRendering();//暫停3D渲染和跟蹤
}

@Override
protected void onResume() {
    super.onResume();
    vrPanView.resumeRendering();//恢復3D渲染和跟蹤
}

@Override
protected void onDestroy() {
    vrPanView.shutdown();//關閉渲染下并釋放相關的內(nèi)存
    super.onDestroy();
}

G.一些其他方法

//是否隱藏左下角信息的按鈕
vrPanView.setInfoButtonEnabled(boolean enabled);

//是否隱藏全屏按鈕
vrPanView.setFullscreenButtonEnabled(boolean enabled);

未完,如果遇到新的繼續(xù)添加

最后附上完整代碼:

VrPanoramaActivity.java

本文作者: shijiacheng
本文鏈接: http://shijiacheng.studio/2017/06/30/first-RecyclerView/
版權(quán)聲明: 本博客所有文章除特別聲明外磷斧,均為原創(chuàng)文章振愿。請尊重勞動成果诗芜,轉(zhuǎn)載注明出處!
轉(zhuǎn)載請注明:轉(zhuǎn)自http://shijiacheng.studio

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末埃疫,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子孩哑,更是在濱河造成了極大的恐慌栓霜,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件横蜒,死亡現(xiàn)場離奇詭異胳蛮,居然都是意外死亡,警方通過查閱死者的電腦和手機丛晌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門仅炊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人澎蛛,你說我怎么就攤上這事抚垄。” “怎么了谋逻?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵呆馁,是天一觀的道長。 經(jīng)常有香客問我毁兆,道長浙滤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任气堕,我火速辦了婚禮纺腊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘茎芭。我一直安慰自己揖膜,他們只是感情好,可當我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布骗爆。 她就那樣靜靜地躺著次氨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪摘投。 梳的紋絲不亂的頭發(fā)上煮寡,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天,我揣著相機與錄音犀呼,去河邊找鬼幸撕。 笑死,一個胖子當著我的面吹牛外臂,可吹牛的內(nèi)容都是我干的坐儿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼貌矿!你這毒婦竟也來了炭菌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤逛漫,失蹤者是張志新(化名)和其女友劉穎黑低,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體酌毡,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡克握,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了枷踏。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片菩暗。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖旭蠕,靈堂內(nèi)的尸體忽然破棺而出停团,到底是詐尸還是另有隱情,我是刑警寧澤掏熬,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布客蹋,位于F島的核電站,受9級特大地震影響孽江,放射性物質(zhì)發(fā)生泄漏讶坯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一岗屏、第九天 我趴在偏房一處隱蔽的房頂上張望辆琅。 院中可真熱鬧,春花似錦这刷、人聲如沸婉烟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽似袁。三九已至,卻和暖如春咐刨,著一層夾襖步出監(jiān)牢的瞬間昙衅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工定鸟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留而涉,地道東北人。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓联予,卻偏偏與公主長得像啼县,于是被迫代替她去往敵國和親材原。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一季眷、背景簡介 Welcome to VR at Google Daydream Cardboard 給我們提供了三...
    嘮嗑008閱讀 7,064評論 3 5
  • 世界對孩子是有趣的余蟹。 世界對大人是有用的。 對生活保持好奇心子刮,熱愛生活客叉,生活才能熱愛你。 我們也想像孩子那樣话告,讓世...
    鯉語_Lee閱讀 164評論 0 0
  • 你焦慮嗎? 每個人...
    朱欣欣1987閱讀 202評論 0 4
  • 2004年讀大學卵慰,那時大學已經(jīng)普及沙郭,我所受的教育便不再是精英教育。而我個人也一直覺得一個人要有點情趣裳朋,陶冶自...
    紫燕風前舞閱讀 270評論 0 0
  • 夜如此之靜病线,以至于風滑過的痕跡都飄于耳際; 夜如此之寒鲤嫡,以至于總喜歡高調(diào)舞蹈的蚊子送挑,不知去了何方; 深夜的一抹清涼...
    文戈乎乎閱讀 158評論 0 0