[備忘録] Android: DP⇔ピクセル変換

自前ライブラリ化してはいるものの、なぜかいつも忘れがちになるので備忘録として記載。

// extensionとしての実装例

/*
 * DP→ピクセルの変換
 */

val Number.toPixel: Float
    get() = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, this.toFloat(), Resources.getSystem().displayMetrics)
    // 下記のようにディスプレイの密度で乗算してもOKだが上記のような専用メソッドを使う方が安全度は高いかも
    //get() = this.toFloat() * Resources.getSystem().displayMetrics.density

/*
 * ピクセル→DP変換
 * (あまり使う機会はないかも・・・)
 */
val Number.toDp: Float
    get() = this.toFloat() / Resources.getSystem().displayMetrics.density

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です