2015-04-17 2 views
1

В одном из моих занятий я хотел бы настроить количество текстового контента в соответствии с текущим размером экрана. На какой показатель я должен полагаться?Нормализованный размер экрана в Android

Просто ширина в пикселях кажется не слишком надежной, так как масштабирование шрифта может быть очень различным. С другой стороны, DisplayMetrics's DENSITY_280, DENSITY_400 ... кажутся слишком широкими. Есть ли нормализованная метрика, доступная как width_in_pixels * font_scaling?

Только в случае: My мин SDK Verion является 15 (4.0.3)

ответ

1

вы можете получить такие значения, как точки на дюйм от DisblayMetrics, смотрите здесь docs

также имеется встроенный конвертер для различных метрик размера в апи, TypedValue.applyDimension(), которые могут быть использованы, чтобы получить пикселы из зра или дпа

1

Вы можете проверить эту ссылку, чтобы узнать, как Supporting Multiple Screens on Android.

Секрет заключается в использовании блоков dp ​​на ваших макетах.

  • px - один пиксель.
  • sp - независимые от масштаба пиксели.
  • dp - независимые от плотности пиксели.

dp - Независимые от плотности пиксели - абстрактный блок, основанный на физической плотности экрана. Эти единицы относятся к экрану с разрешением 160 точек на дюйм, поэтому один пиксель составляет один пиксель на экране с разрешением 160 точек на дюйм. Отношение dp-to-pixel будет меняться с плотностью экрана, но не обязательно в прямой пропорции. Примечание. Компилятор принимает как «dip», так и «dp», хотя «dp» более соответствует «sp».

+0

Я меняю свой андерсер. посмотрите пожалуйста. –

2

При определении размера текста, всегда используйте зр:

<TextView android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textSize="20sp" /> 

here подробнее и here

Смежные вопросы