Android中TextView的TextAppearance属性

Android中TextView的TextAppearance属性,android,textview,Android,Textview,我正在开发android应用程序,使用TextView在屏幕上显示文本 我正在对TextView使用此属性来设置文本的大小android:textAppearance=“?android:attr/textAppearanceMedium” 我是否需要设置文本的大小,还是由Android操作系统自动管理 提前谢谢 我是否需要设置文本的大小,还是由Android操作系统自动管理 不,使用android:textAppearance=“?android:attr/textAppearanceMedi

我正在开发android应用程序,使用
TextView
在屏幕上显示文本

我正在对
TextView
使用此属性来设置文本的大小
android:textAppearance=“?android:attr/textAppearanceMedium”

我是否需要设置文本的大小,还是由Android操作系统自动管理

提前谢谢

我是否需要设置文本的大小,还是由Android操作系统自动管理

不,使用android:textAppearance=“?android:attr/textAppearanceMedium将使不同设备上的所有文本都具有中等大小。因此,这意味着不同设备上的应用程序文本具有相同的大小和重量


设置每个文本的大小需要进行计算才能获得相同的大小和重量。

在Android文本元素中,有一个默认值首先应用(类似于网页)。如果您希望覆盖这些属性并定义自己的属性,则必须显式设置它们。
android:textAppearance
就是这样一种覆盖,但您可以单独覆盖其他属性(而不是作为聚合)…您需要查看相关文档。

是的,大小调整是在后台自动完成的。当使用诸如
android:textAppearance
之类的属性时,它会直接使用textSize的预定义特定sp值-

android:textAppearance=“?android:textAppearanceSmall”
=>14sp

android:textAppearance=“?android:textAppearanceMedium”
=>18sp

android:textAppearance=“?android:textAppearanceLarge”
=>22sp

因此,它根据屏幕密度和用户偏好自动调整值,使其在所有设备上看起来相等,例如dp值公式:px=dp*(dpi/160),类似的情况是仅用于字体的sp值,它使用相同的概念,只是不同,因为它可能会因用户在“设置”中设置的fontSize首选项而有所不同

我没有使用该
:attr/
类型,因为它可能会被使用,也可能不会被使用,并且具有相同的用途,因为系统资源工具知道在这个上下文中需要一个属性资源,您不需要显式地声明该类型

以下是指向外部资源的链接:


有一个默认值。如果你想更改它,那么是的,你需要输入代码。@JeremyMiller这是不是意味着如果我使用
android:textAppearance
并手动设置我的文本大小?试试吧。为什么要加载浏览器,登录,键入一堆文本,提交,等等……而不是只是尝试一下——如果有问题就这么做?如果您已经完成了所有这些,然后发布代码,以便有人能够提供有针对性的帮助。@JeremyMiller我从您的第一条评论中得到了答案,但仍然有一个疑问,我在这里问@Williams是否要使用
android:textAppearance=“?android:attr/textAppearanceMedium”“
您不需要更改大小,android会在所有显示中注意这一点。如果我使用android:textAppearance,您确定所有android密度的文本大小都相同吗=“?android:attr/textAppearanceMedium?@Williams是。。而不是设置文本大小。。这里有一个代码,当你想为所有不同的设备设置txt大小。textSize=factor*heights但我认为Android根据密度定义了不同的文本大小值
Android:textAppearance=“?Android:attr/textAppearanceMedium
@Williams是不同的dpi值,但在不同的设备上效果/大小相同为什么有些平板电脑不完全支持textAppearance我看你还是没有回答”这是否意味着如果我使用android:textAppearance并手动设置文本大小?“我不理解最后一个问题(在评论中)。你能简单演示一下吗?我的意思是如果我使用setText(15)将这个
android:textAppearance
设置为
TextView
并将文本大小也设置为相同的
TextView
那么在这里使用属性
android:textAppearance
?无论最后设置的是哪一个,我相信都会覆盖前面的值。如果您打算覆盖,那么这样做只有一个“用法”。例如,默认情况下,文本是24sp,然后在特定情况下,您希望它是36sp。