Android - 相同 dpi 但不同屏幕尺寸的动态文本缩放
Android - Dynamic text scaling for same dpi but different screen size
在我的应用程序中,我动态创建了多个 TextView,每个文本的文本大小都是我从值文件夹下 dimens.xml
中存储的值派生的。一方面我有 Nexus 4,另一方面我有 Nexus 10。两者都有相同的 "xhdpi" 密度桶,但一个屏幕尺寸为 4.7 英寸,另一个屏幕尺寸为 10.05 英寸。由于它们的密度桶相同,我可以为 textsize 设置相同的值,但在 Nexus 4 上显示良好的文本在 Nexus 10 上显得太小。如何让我的文本在此类设备上显示得适当大?让我知道是否需要包含任何文件。
在你的 dimens.xml 文件中使用 sp 而不是 dp.
之前
<dimen name="text_size">80dp</dimen>
之后
<dimen name="text_size">80sp</dimen>
创建values-sw600dp和values-sw720dp,看看你的tablet属于哪一个。values-sw600dp和values-sw720dp中相同键名的尺寸根据你的需要调大。
经过更多研究后,我发现您可以同时使用大小和分辨率说明符。我只是对 Nexus 10 使用 values-xlarge-mdpi
,对 Nexus 4 使用 values-large-mdpi
。
在我的应用程序中,我动态创建了多个 TextView,每个文本的文本大小都是我从值文件夹下 dimens.xml
中存储的值派生的。一方面我有 Nexus 4,另一方面我有 Nexus 10。两者都有相同的 "xhdpi" 密度桶,但一个屏幕尺寸为 4.7 英寸,另一个屏幕尺寸为 10.05 英寸。由于它们的密度桶相同,我可以为 textsize 设置相同的值,但在 Nexus 4 上显示良好的文本在 Nexus 10 上显得太小。如何让我的文本在此类设备上显示得适当大?让我知道是否需要包含任何文件。
在你的 dimens.xml 文件中使用 sp 而不是 dp.
之前
<dimen name="text_size">80dp</dimen>
之后
<dimen name="text_size">80sp</dimen>
创建values-sw600dp和values-sw720dp,看看你的tablet属于哪一个。values-sw600dp和values-sw720dp中相同键名的尺寸根据你的需要调大。
经过更多研究后,我发现您可以同时使用大小和分辨率说明符。我只是对 Nexus 10 使用 values-xlarge-mdpi
,对 Nexus 4 使用 values-large-mdpi
。