2012-08-08 10 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

ビューの高さを返します。 返信

ビューの高さ(ピクセル単位)。

あなたは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

これを確認してくださいr回答http://coh.io/adpi/ –

関連する問題