安卓系统中默认的文本大小是多少?

151

我有一些按钮和一个自定义视图,我使用Paint.setTextSize()设置文本大小。我希望文本大小看起来与按钮上的文本大小相同。现在,我当然可以将按钮的文本大小设置为例如18sp,并在我的视图中使用18。但为了更好地集成,我想知道“普通”按钮的文本大小是多少。根据我的测试,它应该是类似于12sp的大小,但我没有找到任何相关文档。

保留默认大小会导致视图上的文本过小。

也许我应该采取另一种方法来解决这个问题?


2
好的,看起来它是未知的。所以我选择16sp。这看起来足够好,而且不会太小(我已经需要戴眼镜或HTC HD了 :-) 顺便说一句,要为图形缩放字体,您需要首先使用float scale = getContext().getResources().getDisplayMetrics().density;找到设备的缩放因子,然后将其乘以所需的sp文本大小,并使用Paint.setTextSize设置大小。 - Rene
2
可能是Android中默认字体特征是什么?的重复问题。 - user207421
在网络上搜索“abc_text_size_medium_material”(标准尺寸之一)会得到App Compat的Material尺寸XML文件,其中包含所有标准尺寸。 - Richard Le Mesurier
9个回答

221

总体而言:

有三个“默认”文本大小值:

 - 14sp
 - 18sp
 - 22sp

这些值在下列TextAppearances中定义:

 - TextAppearance.Small
 - TextAppearance.Medium
 - TextAppearance.Large

有关排版的更多信息可以在设计指南中找到。

与您的问题相关:

如果您没有设置自定义textSize或textAppearance,则会使用TextAppearance.Small


更新:Material Design:

与字体和字形相关的新指南。标准14sp规则仍然适用于(正文)。

如何设置文字外观的示例

AppCompat版本:

android:textAppearance="@style/TextAppearance.AppCompat.Body"

Lollipop及更高版本:

android:textAppearance="@android:style/TextAppearance.Material.Body"


2
想要在上面的列表中添加 12sp 用于 Micro - Ram Patra
2
另外, TextApperance.Micro 实际上不存在。请参阅这个问题 - Andrew T.
2
有趣的是,即使在 Material 主题中,小/中/大尺寸仍然是 14/18/22,尽管根据 Material 排版指南,18 和 22 不是标准尺寸。这可能是为了向后兼容性。 - Karsten

62

44

这将返回按钮上文本的默认大小(以像素为单位)。


Kotlin

val size = Button(this).textSize

Java

float size = new Button(this).getTextSize();

19

appcompat-v7中的默认值

<dimen name="abc_text_size_body_1_material">14sp</dimen>
<dimen name="abc_text_size_body_2_material">14sp</dimen>
<dimen name="abc_text_size_button_material">14sp</dimen>
<dimen name="abc_text_size_caption_material">12sp</dimen>
<dimen name="abc_text_size_display_1_material">34sp</dimen>
<dimen name="abc_text_size_display_2_material">45sp</dimen>
<dimen name="abc_text_size_display_3_material">56sp</dimen>
<dimen name="abc_text_size_display_4_material">112sp</dimen>
<dimen name="abc_text_size_headline_material">24sp</dimen>
<dimen name="abc_text_size_large_material">22sp</dimen>
<dimen name="abc_text_size_medium_material">18sp</dimen>
<dimen name="abc_text_size_menu_material">16sp</dimen>
<dimen name="abc_text_size_small_material">14sp</dimen>
<dimen name="abc_text_size_subhead_material">16sp</dimen>
<dimen name="abc_text_size_subtitle_material_toolbar">16dp</dimen>
<dimen name="abc_text_size_title_material">20sp</dimen>
<dimen name="abc_text_size_title_material_toolbar">20dp</dimen>

5

5

你可以在Google的样式指南中找到所有东西的标准尺寸。

以下是他们用于按钮的值:

按钮

英语:中等14sp,全大写

紧凑:中等15sp,全大写

高:粗体15sp


3

TextView的默认文本大小

如果您没有使用以下任何一个:

TextAppearance.Small

TextAppearance.Medium

TextAppearance.Large

那么默认大小为14sp。


2

默认文本大小因设备而异

类型 尺寸 微型 12 sp 小型 14 sp 中型 18 sp 大型 22 sp


0

在2022年12月的Android Studio中,当您删除字体大小时,在开发应用程序时出现的默认大小为14sp。

使用SP有助于设备兼容性。 另一方面,字体大小为14,即较小,这是一个优点,因为它不会在具有大字体的小型设备上出现适配问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接