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));
这解决了我的问题。
我正在努力让我的应用程序在不同设备上正确显示,为此我被推荐使用 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));
这解决了我的问题。