1. ホーム
  2. android

[解決済み] アンドロイドでピクセルからdpをプログラム的に計算する方法 [重複]。

2022-05-25 02:40:26

質問

を計算したい。 dp から px をプログラムすることができます。どのようにそれを行うのですか? 私はからの解決を得る。

DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
ht = displaymetrics.heightPixels;
wt = displaymetrics.widthPixels;

どのように解決するのですか?

ここにあるすべての回答には dp->px という変換ではなく px->dp という、OPが要求したものです。 なお TypedValue.applyDimension はpx->dpの変換には使用できませんので、ここで説明する方法を使用する必要があります。 https://stackoverflow.com/a/17880012/504611 (以下、便宜上引用)。

fun Context.dpToPx(dp: Int): Int {
    return (dp * resources.displayMetrics.density).toInt()
}

fun Context.pxToDp(px: Int): Int {
    return (px / resources.displayMetrics.density).toInt()
}