Определих измерение на радиус на кръг във файл с ресурси по следния начин:
<?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). Тук ли съм сгрешил? Има ли нещо, което не разбирам?