Android 不同DPI上的字体大小问题

Android 不同DPI上的字体大小问题,android,Android,我在sp中指定了所有字体大小。文本在包括Nexus 7、Galaxy S4 mini等在内的多个设备上看起来不错。但是,在Galaxy S 3上,字体太大。这是不是因为S3的DPI更高?如果是这样,我该如何调整以使字体以相对相似的大小显示?在我的项目中,我对每种类型的密度文件夹使用不同的“dimens.xml”文件,例如: 值mdpi 值hdpi 值xhdpi dimens.xml具有: <!-- Text dimension for activity album preview --

我在sp中指定了所有字体大小。文本在包括Nexus 7、Galaxy S4 mini等在内的多个设备上看起来不错。但是,在Galaxy S 3上,字体太大。这是不是因为S3的DPI更高?如果是这样,我该如何调整以使字体以相对相似的大小显示?

在我的项目中,我对每种类型的密度文件夹使用不同的“dimens.xml”文件,例如:

  • 值mdpi
  • 值hdpi
  • 值xhdpi
dimens.xml具有:

<!-- Text dimension for activity album preview -->
<dimen name="text_album_title">20sp</dimen>
<dimen name="text_album_author">18sp</dimen>
<dimen name="text_album_info">13sp</dimen>

<!-- Text dimension for row -->
<dimen name="text_track_title">16sp</dimen>
<dimen name="text_track_length">14sp</dimen>

20便士
18便士
13便士
16便士
14便士
这对于文件夹中的每个文件都是不同的。由您决定大小,您将通过使用带有TextView的布局看到每个维度之间的差异。试试看

编辑


多亏了Runloop和323go,我在这个问题上完全错了。

DP/SP似乎工作正常。我得到的较大字体大小是因为以编程方式设置文本大小,使用已返回缩放的资源值-因此基本上字体是双重缩放的。这本可以通过Android的适当文档加以阻止。

谢谢,我会尝试一下,请不要尝试。它完全违背了
dp
/
sp
的目的。字体大小应取决于屏幕大小,而不是密度。如果你按密度提供不同的值,那么你的应用程序在旧的Nexus7和新的Nexus7上看起来就会不同@JaAd在这些值如何相互作用的问题上显然是错误的,如果你这么说的话。顺便提一下,你能举个例子吗?你们将如何解决运行循环问题?@JaAd,并没有“若你们这么说的话”——这是有据可查的。我对他的问题的评论应该可以解决他的问题。@323正如我在问题中所说的,仅仅使用dp/sp对于密度非常不同的设备根本不起作用。获取我提到的设备,自己测试。给出在现实生活中无法证明的答案对任何人都没有帮助。顺便说一句,所有测试设备上的用户字体大小设置都相同。请参阅上面的链接。如果具有相同
sp
尺寸的字体在一台设备上比在另一台设备上显示得更大,则字体缩放工作正常。在S3上,检查设置/显示/字体大小,并验证其是否“正常”,而不是“大”。如果需要字体大小一致,请使用
dp
,而不是
sp
——但只能将其作为最后手段。字体大小可以缩放的原因是为了让视力差的用户可以使用应用程序。您是否为不同的密度定义了不同的字体大小?