dp
プログラムで計算したいのですpx
が、どうすればいいでしょうか? 解像度は次のようになります:
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
ht = displaymetrics.heightPixels;
wt = displaymetrics.widthPixels;
ベストアンサー1
ここでの回答はすべてdp->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()
}