2012-08-08 1 views
6

Help.I ListView의 높이를 찾았는데 px 또는 dpi를 모르십니까? dpi가 필요합니다.getheight() px 또는 dpi?

final ListView actualListView = mPullRefreshListView.getRefreshableView(); 

actualListView.getViewTreeObserver().addOnGlobalLayoutListener(
       new ViewTreeObserver.OnGlobalLayoutListener() { 
        public void onGlobalLayout() { 
         height = actualListView.getHeight(); 

        } 
       }); 
+0

getHeight()를 얻을 수있는이 코드를 사용하여; 높이를 항상 픽셀 단위로 반환하려면이 솔루션을 확인하십시오. http://stackoverflow.com/questions/3166501/getting-the-screen-density-programmatically-in-android –

+1

미래를위한 부름. 당신이 필요로하는 것은'dp' 또는'dip' 일 것입니다 - 그들은 밀도에 독립적 인 픽셀을 나타냅니다 *. 'dpi'는 * dots per inch *이며 치수가 아닌 화면의 밀도를 측정합니다. –

답변

26

픽셀의 높이를 반환 getheight는 아래 .. 문서를 말하는 것이다

public final int getHeight() 

오류 발생 날짜 : API 레벨 1

보기의 높이를 반환합니다. 반품

보기의 높이 (픽셀 단위).

px를 dp로 변환해야합니다. 다음 방법을 사용하여 dp로 변환하십시오. DP에

변환 픽셀 :

public int pxToDp(int px) { 
    DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics(); 
    int dp = Math.round(px/(displayMetrics.xdpi/DisplayMetrics.DENSITY_DEFAULT)); 
    return dp; 
} 

또는 아래 PX의 사용을 원하는 경우. 픽셀

변환 DP :

public int dpToPx(int dp) { 
    DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics(); 
    int px = Math.round(dp * (displayMetrics.xdpi/DisplayMetrics.DENSITY_DEFAULT));  
    return px; 
} 
1

런타임 디스플레이의 폭 & 높이

DisplayMetrics displaymetrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
int height = displaymetrics.heightPixels; 
int wwidth = displaymetrics.widthPixels; 
+0

458px 높이의 해상도 (dpi)를 알려주시겠습니까? –

+0

답을 확인하십시오. 답변 http://coh.io/adpi/ –