可能性のある複製:
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;
}
画面の密度分類からdp換算係数を推測する代わりに、単純に直接照会できます。
getWindowManager().getDefaultDisplay().getMetrics(metrics);
float logicalDensity = metrics.density;
logicalDensityには、デバイス画面の物理ピクセルサイズを取得するためにdpを乗算する必要がある係数が含まれます。
int px = (int) Math.ceil(dp * logicalDensity);