Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Dimens文件中定义的字体大小,在Java类中显示3倍的值_Java_Android_Android Layout_Android Fonts - Fatal编程技术网

在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),并且设置为正常字体比例,这可以解释为什么1
sp
变成3像素

sp
用于文本大小是一个很好的选择


您可以在中阅读有关缩放像素的更多信息。

getDimension()
获得的值位于像素中。资源中的值以缩放像素为单位(
sp
)。缩放像素会考虑屏幕密度和用户选择的字体比例。在您的情况下,我猜您的设备是一个
xxhdpi
设备(~480dpi),并且设置为正常字体比例,这可以解释为什么1
sp
变成3像素

sp
用于文本大小是一个很好的选择


您可以在中阅读有关缩放像素的更多信息。

非常感谢,有什么公式可以将像素转换为像素吗SP@Kirmani88:不太好。除了在屏幕渲染的最后阶段,
px
不是有用的维度度量单位。您可以将其他度量单位转换为px,但实际上不是相反。非常感谢,有什么公式可以将px转换为px吗SP@Kirmani88:不太好。除了在屏幕渲染的最后阶段,
px
不是有用的维度度量单位。您可以将其他度量单位转换为px,但实际情况并非相反。
largeText= 96
smallText= 72
newsFont= 48