0

に:

(metrics.density)密度:1.0(metrics.densityDpi)密度Dpi:160

との差:

float mm_1 = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, 1, getResources().getDisplayMetrics());

float mm_2 = 1 * metrics.densityDpi * (metrics.density/25.4f);

なぜこの違いがあるのですか?

mm_1 = 1.33333333
mm_2 = 6.2992125
4

1 に答える 1

0

TypedValue.applyDimension()単位からインチに変換しません(に基づいて、あなたがやろうとしていると思います25.4)。

現在の密度に応じて、値をシステムで使用される値に変換するだけです。hdpiの密度係数が であるため、これを行うためにスクリーンをhdpi使用していると思います4/3。で試してみると、mdpi変換する必要がないため、おそらく 1.0 になります。

于 2013-02-24T19:32:14.890 に答える