2017-04-10 4 views
1

임 (인터넷에서 예를 찾을 수 없음) 판지보기CardboardView 및 사용자 정의 메뉴 안드로이드

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. 
     } 
    } 
} 

내가 (블루투스를 통해) 게임 패드 여기 메뉴를 추가 할를 사용하려고합니다. 나는 을 내 메뉴와 함께 작성하고 CardboardOverlayEyeView에서 inflate를 사용하여이 레이아웃을 현재 viewGroup에 추가합니다. 그러나 올바른 작업을 위해 extends ViewGroupextends RelativeLayout으로 변경되었습니다.

내 메뉴가 잘 보입니다. 조이스틱 (UP/DOWN)의 컨트롤을 사용하여 왼쪽 뷰에서 포커스 (버튼의 다른 색상과 같음)를 표시 할 때 "점 1, 점 2, 점 3"과 같은 몇 가지 버튼이 있습니다. 그리고 오른쪽 뷰에는 포커스가 없습니다. . 또한하지만 왼쪽/오른쪽 조이스틱 컨트롤을 사용하는 경우 - 나는 왼쪽에서 오른쪽보기로 전환 할 수 있습니다. 스위치를 제거하고 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); 
      } 
     } 

    } 

전체 초점이 맞지 않습니다. 그러나 그것의 멋지다.