Можно сказать, что если разрешение экрана Galaxy Tab (в портретном режиме) составляет 600px
, а ширина экрана 3.55inch
, плотность экрана будет 600/3.55 = 169 dpi
. Зная это и помня, как вычисляются независимые пиксели устройства (dp) (http://developer.android.com/guide/practices/screens_support.html):
px = dp * (dpi / 160);
600 = dp * (169 / 160);
dip = 568
Таким образом, рисование горизонтальной линии шириной 568 точек на дюйм (независимые от устройства пиксели), начиная с позиции 0, должно точно соответствовать ширине экрана. Но если вы попробуете это на устройстве, вы увидите, что ширина экрана составляет 400dp
. Я снова буду использовать ту же формулу, но для получения dpi:
600 = 400 * (dpi / 160);
dpi = 240
Таким образом, имея ширину экрана 240dpi
, 3.55inch
и 600pixels
, означает ли это, что один физический пиксель состоит из нескольких «точек», в противном случае параметры соответствуют ширине 852pixel (3.55*240)
.
Я думал, что dpi означает количество точек на дюйм, то есть пикселей на дюйм. Но, похоже, это не так ...
Добавлено позже:
Это (http://developer.android.com/guide/topics/resources/more-resources.html#Dimension) говорит:
160dp - это всегда один дюйм, независимо от плотности экрана
Что не соответствует действительности. Просто проверьте источник измерения из этого:
Разница между размерами Android: pt и dp
Добавлено еще позже:
Причина, по которой я спрашиваю, состоит в том, что нарушение правила, которое 160dp = 1inch
приводит к тому, что при указании ширины элемента управления, например, 320dp это покроет на Galaxy Tab гораздо большую часть, чем это действительно необходимо, и намного больше, чем вы ожидаете от экрана 600x1024px ...
Спасибо за разъяснения
BR
Sten