Google VR for Android を使用して VR アプリを開発しています。(ヘッドセット ボタンをクリックして) 双眼鏡モードに切り替えると、次の画面が表示されます。
この画面を回避するにはどうすればよいですか?
プログラムで双眼鏡モードに切り替えることは可能ですか?
ありがとう、クリスチャン
昨日、私はあなたが今求めているのと同じ結果を達成するために働いていました。完璧かどうかはわかりませんが、最終的には機能します。
VrVideoView のすべての子ビューを取得するだけで、それに応じてカスタマイズできます。
VrVideoView videoWidgetView = (VrVideoView) findViewById(R.id.video_view);
View framelayout = ((ViewGroup) videoWidgetView).getChildAt(0);
ArrayList<View> list = getAllChildren(framelayout);
for(final View view : list) {
if(view.getId() == R.id.transition_frame){
//set visiblity gone for that cardboard information screen
view.setVisibility(View.GONE);
}
else if(view.getId() == R.id.transition_icon){
//perform click action of the same screen's icon which can
//redirect you to cardboard vr screen directly(binocular mode)
view.performClick();
}
}
すべての子ビューを取得する再帰メソッド:
private ArrayList<View> getAllChildren(View v) {
if (!(v instanceof ViewGroup)) {
ArrayList<View> viewArrayList = new ArrayList<View>();
viewArrayList.add(v);
return viewArrayList;
}
ArrayList<View> result = new ArrayList<View>();
ViewGroup viewGroup = (ViewGroup) v;
for (int i = 0; i < viewGroup.getChildCount(); i++) {
View child = viewGroup.getChildAt(i);
ArrayList<View> viewArrayList = new ArrayList<View>();
viewArrayList.add(v);
viewArrayList.addAll(getAllChildren(child));
result.addAll(viewArrayList);
}
return result;
}
これで問題が解決することを願っています。さらに、それぞれのビューを呼び出すことで、フルスクリーン モードに直接ジャンプすることもできます。
setTransitionViewEnabled(boolean enabled) を試すことができます: https://developers.google.com/vr/android/reference/com/google/vr/sdk/base/GvrView.html#setTransitionViewEnabled(boolean)
mono モードと vr モードを切り替えるには、setVRModeEnabled(boolean enabled): https://developers.google.com/vr/android/reference/com/google/vr/sdk/base/GvrView.html#setVRModeEnabled(boolean)