CardboardView 和自定义菜单 Android
CardboardView and Custom Menu Android
我正在尝试使用纸板视图(在互联网上找到示例)
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.
}
}
}
我想在此处为游戏手柄添加菜单(通过蓝牙)。我只是用我的菜单写了另一个 layout.xml
,在 CardboardOverlayEyeView
中使用 inflate 我将这个布局添加到我当前的 viewGroup。但为了正确工作 - extends ViewGroup
已更改为 extends RelativeLayout
.
我的菜单显示良好。像 "point 1, point 2, point 3" 这样的按钮很少
当我在操纵杆 (UP/DOWN) 上使用控件时,它在 leftView 上显示焦点(就像按钮的另一种颜色)- 在右视图中它的 good.But 没有 focus.Also 但是如果我在操纵杆上使用控件 left/right - 我可以从左视图切换到右视图。
我想删除开关,如果 leftView 有焦点按钮(另一种颜色),我也想在 rightView 中执行此步骤。谁能帮我?怎么做。
图片
我终于做到了。
代码的简单部分。我们需要按钮数组作为左右视图主按钮的副本。
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);
}
}
}
它没有完全集中注意力。但它看起来很棒。
我正在尝试使用纸板视图(在互联网上找到示例)
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.
}
}
}
我想在此处为游戏手柄添加菜单(通过蓝牙)。我只是用我的菜单写了另一个 layout.xml
,在 CardboardOverlayEyeView
中使用 inflate 我将这个布局添加到我当前的 viewGroup。但为了正确工作 - extends ViewGroup
已更改为 extends RelativeLayout
.
我的菜单显示良好。像 "point 1, point 2, point 3" 这样的按钮很少
当我在操纵杆 (UP/DOWN) 上使用控件时,它在 leftView 上显示焦点(就像按钮的另一种颜色)- 在右视图中它的 good.But 没有 focus.Also 但是如果我在操纵杆上使用控件 left/right - 我可以从左视图切换到右视图。
我想删除开关,如果 leftView 有焦点按钮(另一种颜色),我也想在 rightView 中执行此步骤。谁能帮我?怎么做。
我终于做到了。 代码的简单部分。我们需要按钮数组作为左右视图主按钮的副本。
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);
}
}
}
它没有完全集中注意力。但它看起来很棒。