Android 应用程序中可扩展 DP/SP 库的扩展问题

Scaling problems with Scalable DP/SP library in Android app

我正在努力让我的应用程序在不同设备上正确显示,为此我被推荐使用 Scalable DP and Scalable SP。然后我使用一个 dimens.xml 文件,它包含我在整个应用程序中使用的不同键,这些键包含对库值的引用,如下所示:

<dimen name="large_digital_clock_size">@dimen/_25ssp</dimen>
<dimen name="large_digital_clock_date_size">@dimen/_15ssp</dimen>

这是我在代码中的设置方式

clock.setTextSize(r.getDimension(R.dimen.large_digital_clock_size));
date.setTextSize(r.getDimension(R.dimen.large_digital_clock_date_size));

但在我的案例中它并没有很好地扩展。看看这两个来自两个不同设备的屏幕。并使用上述 xml 和代码

的示例

我有什么选择?

原来这里的问题在于我如何将文本大小应用于文本视图。这一行(当然还有 date 的那一行)

clock.setTextSize(r.getDimension(R.dimen.large_digital_clock_size));

应该是这样的

clock.setTextSize(TypedValue.COMPLEX_UNIT_PX , (int)r.getDimension(R.dimen.large_digital_clock_size));

这解决了我的问题。