web-dev-qa-db-ja.com

Android Convert Px to Dp(Video Aspect Ratio)

可能性のある複製:
Androidでピクセルをdpに変換

ピクセルをdpに変換しようとしています。式は何ですか?

640と480をdpに変換します。ドキュメントはこれを言う

Dp単位から画面ピクセルへの変換は簡単です:px = dp *(dpi/160)

しかし、私はそれが私が必要とするものだとは思わない(そして、私はこれをどのように使うか知らない)。フォーラムが必要だと思います。私はコードの準備ができています:

DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);

    switch(metrics.densityDpi)
    {
         case DisplayMetrics.DENSITY_LOW:
         int sixForty = ?
         int fourEighty = ?
         break;

         case DisplayMetrics.DENSITY_MEDIUM:
         int sixForty = ?
         int fourEighty = ?
         break;

         case DisplayMetrics.DENSITY_HIGH:
         int sixForty = ?
         int fourEighty = ?
         break;
    }
22
spentak

画面の密度分類からdp換算係数を推測する代わりに、単純に直接照会できます。

getWindowManager().getDefaultDisplay().getMetrics(metrics);
float logicalDensity = metrics.density;

logicalDensityには、デバイス画面の物理ピクセルサイズを取得するためにdpを乗算する必要がある係数が含まれます。

int px = (int) Math.ceil(dp * logicalDensity);
76
mportuesisf