2015-11-18 12 views
2

Я предполагаю, что терминология Не зависящие от плотности пиксели и Не зависящие от устройства пиксели, имеют одинаковое значение.Как вычислить независимые пиксельные единицы устройства?

Независимые от плотности пиксели (dip) - это виртуальный пиксельный блок, эквивалентный одному физическому пикселю на экране 160dpi (MDPI).

4dip является equivalant к 320dpi экрана (XHDPI), так как количество пикселей, используемых для отображения тех же данных на экране 320dpi 4 (2 пикселя в ширину и 2 пикселя вниз).

Как вычислить пиксельные единицы в dip для экрана 240dpi (HDPI)?

+0

Дубликат ?: http://stackoverflow.com/questions/5591868/android-pixels-to-dips/16660172#16660172 – Kuffs

ответ

1

HDPI - x1.5 для MDPI.

То есть 160x1.5 = 240.

На MDPI устройстве, которое является стандартом для блока погружной, 1dip является 1px. На устройстве HDPI физически одинаковый размер 1dip составляет 1,5px.

Когда вы сначала знаете некоторое значение px, вы можете преобразовать его в dip на , переходя по его масштабу, так что масштаб HDPI равен 1,5, что позволяет увеличить значение px на 1,5.

Для того же 2dip, HDPI имеет 3px поперек и опускание, в то время как MDPI имеет 2px поперек и опускание.

2dip => 2px on MDPI 
2dip => 2 x 1.5 = 3px on HDPI 

Концепция провала является то, что 1 погружение означает физический размер 1/160 дюйма approxmately, это общий физического размер по всем устройствам, которые имеют различные плотности пикселов.

+0

Что такое значение в единицах 'dip'? '1.5dip'? Если да, как интерпретировать '1.5dip'? Я имею в виду, что «4dip» имеет 2 пикселя в поперечнике и 2 пикселя вниз. – overexchange

+0

@overexchange Я обновил свой ответ. Пусть это поможет. – hata

+0

Я еще не понял. Как мне интерпретировать, когда я говорю о 3dip на MDPI? Это три физических пиксела на экране 160 точек на дюйм? Если да, что это значит? – overexchange

0

Вы можете использовать калькуляторы DPI следующим образом: one. Вы можете проверить http://petrnohejl.github.io/Android-Cheatsheet-For-Graphic-Designers/#screen-densities-and-icon-dimensions на соотношение шкалы DPI. Используя это, HDPI = MDPI x 1,5, поэтому в вашем случае значение будет 240

+0

Я не ищу калькулятор, Ищу процесс для расчета? – overexchange

+0

MDPI X 1.5 = XHDPI – jomartigcal

+0

Здесь вы можете проверить коэффициент масштабирования в процентах: http://petrnohejl.github.io/Android-Cheatsheet-For-Graphic-Designers/#screen-densities-and-icon-dimensions – jomartigcal

0

Вы можете использовать эту функцию для получения значения пикселя из dp с учетом текущих показателей устройства.

public int dpToPx(int dp){ 
    return Math.round(dp*(getResources().getDisplayMetrics().xdpi/ DisplayMetrics.DENSITY_DEFAULT)); 
}