在Dimens文件中定义的字体大小,在Java类中显示3倍的值
我在在Dimens文件中定义的字体大小,在Java类中显示3倍的值,java,android,android-layout,android-fonts,Java,Android,Android Layout,Android Fonts,我在values/dimens.xml文件夹中定义了这3个值 <dimen name="newsFontLarge">32sp</dimen> <dimen name="newsFontSmall">24sp</dimen> <dimen name="newsFont">16sp</dimen> 问题是它没有将实际值存储在Java类中,而是将值乘以3并存储在变量中;i、 e largeText= 96 smallText=
values/dimens.xml
文件夹中定义了这3个值
<dimen name="newsFontLarge">32sp</dimen>
<dimen name="newsFontSmall">24sp</dimen>
<dimen name="newsFont">16sp</dimen>
问题是它没有将实际值存储在Java类中,而是将值乘以3并存储在变量中;i、 e
largeText= 96
smallText= 72
newsFont= 48
请指导我如何在java变量中存储实际值(以dimens定义)。从
getDimension()
获得的值以像素为单位。资源中的值以缩放像素为单位(sp
)。缩放像素会考虑屏幕密度和用户选择的字体比例。在您的情况下,我猜您的设备是一个xxhdpi
设备(~480dpi),并且设置为正常字体比例,这可以解释为什么1sp
变成3像素
将sp
用于文本大小是一个很好的选择
您可以在中阅读有关缩放像素的更多信息。从
getDimension()
获得的值位于像素中。资源中的值以缩放像素为单位(sp
)。缩放像素会考虑屏幕密度和用户选择的字体比例。在您的情况下,我猜您的设备是一个xxhdpi
设备(~480dpi),并且设置为正常字体比例,这可以解释为什么1sp
变成3像素
将sp
用于文本大小是一个很好的选择
您可以在中阅读有关缩放像素的更多信息。非常感谢,有什么公式可以将像素转换为像素吗SP@Kirmani88:不太好。除了在屏幕渲染的最后阶段,
px
不是有用的维度度量单位。您可以将其他度量单位转换为px,但实际上不是相反。非常感谢,有什么公式可以将px转换为px吗SP@Kirmani88:不太好。除了在屏幕渲染的最后阶段,px
不是有用的维度度量单位。您可以将其他度量单位转换为px,但实际情况并非相反。
largeText= 96
smallText= 72
newsFont= 48