Android中TextView的TextAppearance属性

时间:2014-06-16 06:17:29

标签: android textview

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

我正在使用此属性为TextView设置文本android:textAppearance="?android:attr/textAppearanceMedium"的大小。

我是否还需要设置该文本的大小,还是由Android OS自动管理?

提前致谢。

3 个答案:

答案 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"

Accessing Resource, "look for :attr"

答案 1 :(得分:4)

  

我是否还需要设置该文本的大小,还是由Android OS自动管理?

不,使用android:textAppearance="?android:attr/textAppearanceMedium会在不同的设备上制作中等大小的所有文字。这意味着您在不同设备上的应用文本将具有相同的大小和重量。

设置每个文本的大小需要计算才能达到相同的大小和重量。

答案 2 :(得分:2)

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