2011-03-02 6 views
3

안녕하세요, 화면의 화면 크기에서 맨 아래의 메뉴 막대를 빼내려고합니다.화면 크기 Honeycomb Menu android

나는 장치의 해상도에 따라 일정한 숫자를 빼기 만 할 수 있지만 매우 추한 해킹이라고 알고 있습니다. 나는 사람들이 바텀 메뉴 막대의 높이를 얻는 함수를 제공하여 전체 화면 크기에서 빼낼 수있는 기능을 잊지 않을 정도로 바보가 아님을 확신한다.

이것은 비슷한 게시물이다. Size of android notification bar and title bar?

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 

what_i_need =metrics.heightPixels-buttomMenuHeight(); 

나는) (buttomMenuHeight이 필요합니다;

API에서 찾을 수 없습니다. 난 정말 왜 활동의 최상위 뷰의 높이를 사용

감사

답변

7

이 시점에서 이전 버전과의 비교에 대한 상관 없어? 예 : 액티비티에 전체 높이 LinearLayout이 포함되어있는 경우 높이를 사용하면 메뉴 높이 또는 알림 막대 높이를 알 필요가 없습니다.

미래의 Android 레이아웃이 무엇인지, Google TV와 다를 수 있다는 점을 알고 있기 때문에 위험한 도로를 밟고 계시는 것 같습니다.

+0

내가 네이티브 코드에서 이미지를 그리기하고 내가 C. I에 화면의 크기를 전달해야 뷰의 getHeight()에 의해 높이를 얻기 위해 노력하지만 항상 0을 반환 setContentView가 호출 된 후에도 – user498584

0

나는 네이티브 코드에서 이미지를 그리기 그리고 난

내가보기의() getHeight하여 높이를 얻기 위해 노력 C.

에 화면의 크기를 통과해야하지만 항상 된 setContentView이 후에도 0을 반환 라는. 내가 masterLayout.getHeight()를 할 때

RelativeLayout masterLayout = new RelativeLayout(this); 
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT); 
masterLayout.setLayoutParams(params); 
setContentView(masterLayout); 

, 그것은 0 은 내가 fill_parent 말했듯이 전체 화면의 높이를 얻을 것으로 예상 반환합니다.

1

onLayout 다음에 getHeight()를 호출 해보십시오. 보기가 팽창 할 때 크기가 조정되지 않습니다.

EDIT : 또는 Activity에 onLayout이 없으므로 onSizeChanged를 기다릴 수 있습니다.

(참고 How to know when activity is laid out?)