java - CardboardView 和自定义菜单 Android

标签 java android google-cardboard virtual-reality

我正在尝试使用纸板 View (在互联网上找到示例)

private class CardboardOverlayEyeView extends ViewGroup {
        private final ImageView imageView;
        private final TextView textView;
        private float offset;

        public CardboardOverlayEyeView(Context context, AttributeSet attrs) {
            super(context, attrs);
            imageView = new ImageView(context, attrs);
            imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
            imageView.setAdjustViewBounds(true);  // Preserve aspect ratio.
            addView(imageView);

            textView = new TextView(context, attrs);
            textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14.0f);
            textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
            textView.setGravity(Gravity.CENTER);
            textView.setShadowLayer(3.0f, 0.0f, 0.0f, Color.DKGRAY);
            addView(textView);
        }

        public void setColor(int color) {
            imageView.setColorFilter(color);
            textView.setTextColor(color);
        }

        public void setText(String text) {
            textView.setText(text);
        }

        public void setTextViewAlpha(float alpha) {
            textView.setAlpha(alpha);
        }

        public void setOffset(float offset) {
            this.offset = offset;
        }

        @Override
        protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
           //bla bla view positions.
        }
    }
}

我想在此处添加游戏 handle 菜单(通过蓝牙)。我只是用我的菜单编写另一个 layout.xml ,并在 CardboardOverlayEyeView 中使用 inflate 将此布局添加到我当前的 viewGroup 中。但为了正确工作 - extends ViewGroup 已更改为 extendsrelativelayout

我的菜单显示良好。像“点1、点2、点3”这样的按钮很少 当我使用操纵杆上的控件(向上/向下)时,它在左 View 上显示焦点(就像按钮的另一种颜色)-而且它很好。但在右 View 中没有焦点。另外,但是如果我在操纵杆左/右上使用控件-我可以从左 View 切换到右 View 。 我想删除开关,如果 leftView 有焦点按钮(具有另一种颜色),我也希望在 rightView 中执行此步骤。谁能帮我?怎么做。 enter image description here 图片

最佳答案

我终于做到了。 简单的部分代码。我们需要按钮数组作为左右 View 中主按钮的副本。

public void setFocusedButton() {
        for(int i=0; i<mLeftView.btns.length;i++){
            if(mLeftView.btns[i].isFocused() || mRightView.btns[i].isFocused()) {
                mLeftView.btns[i].setBackgroundResource(R.drawable.button_pressed);
                mRightView.btns[i].setBackgroundResource(R.drawable.button_pressed);
            }else {
                mLeftView.btns[i].setBackgroundResource(R.drawable.button);
                mRightView.btns[i].setBackgroundResource(R.drawable.button);
            }
        }

    }

它没有完全集中注意力。但它看起来很棒。

关于java - CardboardView 和自定义菜单 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43327478/

相关文章:

android - 如何在两个VideoView中同时显示同一视频

java - Android FTP 库

java - 如何将条形码 Vision API 与 Google Cardboard 集成?

java - Minecraft (bukkit) 插件,向用户发送可点击的链接

java - 生命宇宙和一切 SPOJ Java

android - Facebook API 登录失败,手机上安装了 FB 应用程序

java - 在 Activity 中保存 fragment 状态

android - 使用 Unity 5.4 和 gvr sdk 将普通的 android 应用程序更改为 vr 应用程序

java - 获取表格元素的旧值,如何获取新值?

java - LWJGL:glfwCreateWindow 返回 null