ピクセルをdpに変換する 質問する

ピクセルをdpに変換する 質問する

解像度が の Pantech デバイス用に、高さと幅をピクセル単位で指定してアプリケーションを作成しました480x800

G1 デバイスの高さと幅を変換する必要があります。dp
に変換すると問題が解決し、両方のデバイスに同じソリューションが提供されると考えました。

ピクセルを dp に変換する簡単な方法はありますか?
何か提案はありますか?

ベストアンサー1

Javaコード:

// Converts 14 dip into its equivalent px
float dip = 14f;
Resources r = getResources();
float px = TypedValue.applyDimension(
    TypedValue.COMPLEX_UNIT_DIP,
    dip,
    r.getDisplayMetrics()
);

Kotlin コード:

 val dip = 14f
 val r: Resources = resources
 val px = TypedValue.applyDimension(
     TypedValue.COMPLEX_UNIT_DIP,
     dip,
     r.displayMetrics
 )

Kotlin 拡張機能:

fun Context.toPx(dp: Int): Float = TypedValue.applyDimension(
  TypedValue.COMPLEX_UNIT_DIP,
  dp.toFloat(),
  resources.displayMetrics)

おすすめ記事