次のように、リソース ファイルで円の半径寸法を定義しました。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="circleRadius">15dp</dimen>
</resources>
そして、次のようなカスタム ビューで円を描画します。
Resources res = getResources();
float radius = res.getDimension(R.dimen.circleRadius);
...
canvas.drawCircle(randomX, randomY, radius, paint);
単位は dp で指定されているため、どのデバイスでも同じ物理サイズの円が生成されるという印象を受けましたが、そうではありません。以下のスクリーンショットを参照してください。
デバイス 1 (スキン = WVGA800、密度 = 240):
デバイス 2 (スキン = QVGA、密度 = 120):
デバイス 3 (スキン=1024x768、密度=160):
各デバイスについて、Scale display to real size
起動時にオプションにチェックを入れ、同じ設定を使用しました (画面サイズ = 3.7 インチ、モニター dpi = 105)。これは私が間違っているところですか?私が理解していないことがありますか?