我正在构建一个适用于所有屏幕尺寸的Android应用程序,我使用sp作为文本大小但是在不同的Android屏幕上存在字体大小的问题。
附10英寸平板电脑的照片,谁能帮帮我?
截图:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
//在这个TesxtView中我使用了sp而不是dp。
<TextView
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/_6sdp"
android:layout_marginEnd="@dimen/_6sdp"
android:layout_marginLeft="@dimen/_6sdp"
android:layout_marginRight="@dimen/_6sdp"
android:layout_marginStart="@dimen/_6sdp"
android:layout_marginTop="@dimen/_110sdp"
android:text="Username"
android:textAlignment="center"
android:textColor="#FFFFFF"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="@+id/rectangle_login"
app:layout_constraintLeft_toLeftOf="@+id/rectangle_login"
app:layout_constraintRight_toRightOf="@+id/rectangle_login"
app:layout_constraintStart_toStartOf="@+id/rectangle_login"
app:layout_constraintTop_toTopOf="@+id/rectangle_login" />
</android.support.constraint.ConstraintLayout>
答案 0 :(得分:3)
创建不同大小的文件夹并在该文件夹中创建dimen文件。 (根据屏幕尺寸)
values
values-small
values-normal
values-large
values-xlarge
答案 1 :(得分:1)
使用此库在sp中设置文本大小 https://github.com/intuit/ssp
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/action_cancel"
android:textColor="@color/purple_light"
android:textSize="@dimen/_12ssp"
app:font="@{`hnc_roman`}"
app:layout_constraintEnd_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:id="@+id/text_view_cancel"
android:onClick="@{v -> viewModel.onCancelClick(v)}"
tools:ignore="MissingConstraints" />
答案 2 :(得分:0)
对于不同的文字尺寸,请尝试使用
android:textAppearance="@android:style/TextAppearance.DeviceDefault.Large"
android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small"
android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium"
这里有小,中,大的选项。我相信这会给你更多的一致性,但这是一个非常广泛的话题。我会推荐你阅读文档。 有用的链接https://material.io/guidelines/style/typography.html
答案 3 :(得分:-1)
您必须在SP
将应用程序中的所有SP提取到dimen文件夹(只需按下alt +输入组合,将光标悬停在SP上)
为不同的屏幕尺寸创建不同的dimen文件夹。您可以手动执行或使用this plugin。诀窍在于下一个:你的sp将在dimen文件夹中。创建不同的屏幕文件夹插件我链接到自动生成所有维度的替代值