根据屏幕密度缩放字体大小

时间:2015-07-29 08:12:16

标签: java android

我知道在Android中你可以根据屏幕密度来缩放图像。 例如,如果mdpi是基线,

  • hdpi = 1.5 * mdpi
  • xhdpi = 2 * mdpi
  • xxhdpi = 3 * mdpi
  • xxxhdpi = 4 * mdpi。

字体大小是否有相似的值?

4 个答案:

答案 0 :(得分:2)

您需要做的是使用scaleDensityhere文档)值DisplayMetrics的成员执行转换 类。从文档

  

显示屏上显示的字体的缩放系数。这是一样的   作为密度,除了它可以在较小的增量调整   运行时基于用户对字体大小的首选项。

答案 1 :(得分:0)

字体大小可能使用的值完全相同

android:textSize="18dp"

虽然建议使用sp(与比例无关的像素)。它与dp几乎相同,但它可能会根据用户可访问性设置进行扩展(例如,如果您的视力低下,则可以扩大字体大小,从而影响{{1}计算)。所以,最终它变成了:

sp

再次,如果您使用默认设置,1dp == 1sp

答案 2 :(得分:0)

如果您想以编程方式执行此操作:

view.setTextSize(TypedValue.COMPLEX_UNIT_SP, textSize);

答案 3 :(得分:0)

  1. res文件夹中创建这5个文件夹 values-ldpi
    values-mdpi
    values-hdpi
    values-xhdpi
    values-xxhdpi

  2. 并在每个文件夹中添加dimens.xml
  3. 将此代码粘贴到每个dimens.xml
  4. 
    
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <dimen name="font_size">72sp</dimen>
    </resources>
    &#13;
    &#13;
    &#13;

    根据屏幕密度更改字体大小。