2017-04-10 82 views
1

我試着用紙板視圖(發現互聯網爲例)CardboardView和自定義菜單的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使用膨脹我將此佈局添加到我當前的viewGroup。但爲了正確的工作 - extends ViewGroup已更改爲extends RelativeLayout

我的菜單顯示很好。當使用操縱桿上的控件(向上/向下)時,它的左側視圖顯示焦點(像另一種顏色的按鈕),並且其良好。但是在右側視圖中沒有焦點,像「點1,點2,點3」 .Also但是,如果即時通訊使用左右快速控制 - 我可以從左側切換到右側視圖。 我想刪除開關,如果leftView已經集中了按鈕(與另一種顏色)我也想在rightView這個步驟。誰能幫我?怎麼做。 enter image description here 圖片

+0

有人可以幫忙嗎? – Peter

回答

0

Finnaly我做到了。 代碼的簡單部分。我們需要從左右視圖中選擇一組按鈕作爲主按鈕的副本。

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); 
      } 
     } 

    } 

其未充分關注。但它看起來很棒。