15

ヘルプ.ListView の高さがわかりましたが、px や dpi がわからないのですが? dpiが必要です

final ListView actualListView = mPullRefreshListView.getRefreshableView();

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

                    }
                });
4

4 に答える 4

37

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;
}
于 2012-08-08T10:23:51.820 に答える
2

ピクセルを返します。 http://developer.android.com/reference/android/view/View.html#getHeight() ピクセルを dpi に変換するには、この式 px = dp * (dpi / 160) を使用します

于 2012-08-08T10:22:46.403 に答える
1

このコードを使用すると、ランタイム表示の幅と高さを取得できます

DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int wwidth = displaymetrics.widthPixels;
于 2012-08-08T10:25:00.843 に答える
1

dp を px に変換する関数と px を dp に変換する関数は、次のようになります (kotlin の場合)。

fun convertDpToPx(dp: Int): Int {
    val metrics = Resources.getSystem().displayMetrics
    return dp * (metrics.densityDpi / 160f).roundToInt()
  }

fun convertPxToDp(px: Int): Int {
  val metrics = Resources.getSystem().displayMetrics
  return (px / (metrics.densityDpi / 160f)).roundToInt()
}
于 2020-05-20T10:07:53.360 に答える