我正在使用适用于 Android 的 Google VR 开发 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)
对于单声道和虚拟现实模式之间的切换,setVRModeEnabled(boolean enabled):https://developers.google.com/vr/android/reference/com/google/vr/sdk/base/GvrView.html#setVRModeEnabled(boolean)