Можно сказать, что если разрешение экрана Galaxy Tab (в портретном режиме) составляет 600 пикселей
, а ширина экрана составляет 3,55 дюйма
, то плотность экрана будет 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
Итак, рисуем горизонтальный линия шириной 568dp (независимые от устройства пиксели), начинающаяся с позиции 0, должна точно соответствовать ширине экрана. Но если вы попробуете это на устройстве, вы обнаружите, что ширина экрана составляет 400dp
. Я снова буду использовать ту же формулу, но для получения dpi:
600 = 400 * (dpi / 160);
dpi = 240
Итак, имея 240 точек на дюйм
, 3,55 дюйма
ширины экрана и 600 пикселей
, означает ли это, что физический пиксель состоит из большего количества «точек», в противном случае параметры соответствуют ширине 852 пикселей (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 СТЕН