我正在使用android应用程序,我正在使用TextView
在屏幕上显示文本。
我正在使用此属性为TextView
设置文本android:textAppearance="?android:attr/textAppearanceMedium"
的大小。
我是否还需要设置该文本的大小,还是由Android OS自动管理?
提前致谢。
答案 0 :(得分:11)
是的,调整大小是在后台自动完成的。在使用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/
类型,因为它可能使用也可能不使用并且用于相同的目的,因为系统资源工具知道在此上下文中需要属性资源,您不需要显式陈述类型。
以下是外部资源的链接:
textAppearance equivalent sp size, "Android Developers, Google + article"
答案 1 :(得分:4)
我是否还需要设置该文本的大小,还是由Android OS自动管理?
不,使用android:textAppearance="?android:attr/textAppearanceMedium
会在不同的设备上制作中等大小的所有文字。这意味着您在不同设备上的应用文本将具有相同的大小和重量。
设置每个文本的大小需要计算才能达到相同的大小和重量。
答案 2 :(得分:2)
在Android文本元素中,首先应用默认值(类似于网页)。如果您希望覆盖它们并定义自己的,那么您必须明确设置它们。 android:textAppearance
就是这样一种覆盖,但是你可以单独覆盖其他属性(而不是作为聚合)......你想要查看相关的文档。