Подтвердить что ты не робот

Увеличить размер шрифта в зависимости от размера устройства

Я планировал использовать разный размер шрифта для текстового просмотра на разных размерах устройства, чтобы сделать письма разборчивыми. Я уже решил не использовать разные макеты для разных устройств и создал общий макет для всех устройств. Теперь единственная проблема заключается в размере текста.

Вопросы:

  • Я хотел бы получить ваши технические рекомендации о том, как изменить размер шрифта на основе размера (физического размера) устройства.

  • Как получить размер шрифта на основе соотношения сторон.

  • Любые ошибки в использовании такого подхода?

Xml для текстового представления

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffff"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tvValue4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="I planned to use different font size for the textview on different device size so as to make the letters legible. I have already decided not to use different layouts for different devices and built a common layout to fit in all the devices. Now the only problem is on the text size."
        android:textColor="#000000"
        android:textSize="15sp" />

</LinearLayout>

Заранее спасибо

4b9b3361

Ответ 1

Да, этот подход ошибочен. Устройства Android имеют разные размеры, но они также могут иметь очень разную плотность.

enter image description here

Вам следует просто следить за дизайном Android лучшие практики.

enter image description here

Они на самом деле очень хорошо продуманы. Почему вы хотите изобрести колесо?

Ответ 2

Попробуйте это, добавьте этот атрибут в свой xml. Он отрегулирует текст на основе экранов, попробуйте.

 style="@android:style/TextAppearance.DeviceDefault.Medium"

Ответ 3

Для размеров шрифта используйте масштабные пиксели (sp). В зависимости от плотности устройства Android масштабирует размер шрифта. Над сообщениями есть лучшее объяснение и рассуждения.

Ответ 4

    String s= "hello";
    TextView tv= (TextView) findViewById(R.id.tv);
    Spannable span = new SpannableString(s);
    span.setSpan(new RelativeSizeSpan(5f), 0, span.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    tv.setText(span);

Основываясь на изменении размера экрана 5f на все, что вы хотите.

http://developer.android.com/guide/practices/screens_support.html. Проверьте тему под заголовком Рекомендации.

Ответ 5

Android имеет встроенные средства для этого-dp и sp. dp - пиксели устройства. Это в основном 1dp = 1/160th дюйма. Это позволяет указать высоту шрифта в размере реального мира. Sp - масштабированные пиксели. Этот размер масштабируется на основе размера шрифта по умолчанию, поэтому пользователь может масштабировать свой системный шрифт, и ваше приложение будет соответствовать ему. Удобен для людей с проблемами зрения, которым нужен большой текст, не занимая экранную недвижимость для других.

Вероятно, вы должны использовать один или другой из них.

Ответ 6

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

https://github.com/intuit/sdp