Android中TextView的TextAppearance属性

问题描述 投票:4回答:3

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

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

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

提前致谢。

android textview
3个回答
1
投票

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


10
投票

是的,调整大小在后台自动完成。在使用像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"


4
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.