Увеличить размер шрифта в зависимости от размера устройства
Я планировал использовать разный размер шрифта для текстового просмотра на разных размерах устройства, чтобы сделать письма разборчивыми. Я уже решил не использовать разные макеты для разных устройств и создал общий макет для всех устройств. Теперь единственная проблема заключается в размере текста.
Вопросы:
-
Я хотел бы получить ваши технические рекомендации о том, как изменить размер шрифта на основе размера (физического размера) устройства.
-
Как получить размер шрифта на основе соотношения сторон.
-
Любые ошибки в использовании такого подхода?
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>
Заранее спасибо
Ответы
Ответ 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