Я определил размер радиуса круга в файле ресурсов следующим образом:
<?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 (скин = 1024 x 768, плотность = 160):
Для каждого устройства я отметил опцию Scale display to real size
при запуске и использовал те же настройки (размер экрана = 3,7 дюйма, разрешение монитора = 105). Это где я ошибся? Я что-то не понимаю?