1

我创建了一个应用程序,它在启动时显示几行文本。它使用 setTextSize 和覆盖 onSizeChanged 的​​ CustomLinearLayout 开始放大此文本,直到填满屏幕 (DisplayHeight)。这类似于可以通过 stackoverflow/and/or/github 找到的一些“Auto-fit TextView”类。

我的解决方案(显示电子书/eInk 的每日圣经段落)在启动时效果很好。

当应用程序完成显示/缩放文本后,它会通过扩展 BroadcastReceiver 并设置重复警报来设置计时器:

alarmMgr.setRepeating(
    AlarmManager.RTC_WAKEUP,
    dayStart.getTimeInMillis(),
    AlarmManager.INTERVAL_DAY,
    alarmIntent
);

尽管我花了一些时间来获得这个唤醒功能,但我让它工作了。当应用程序唤醒时,它会更新文本并将文本大小设置为初始“最小”大小,并且应该再次开始放大它们。

现在的问题是,包含放大文本的“TextView”在更改 TextView 值和字体大小后不会再次“缩小”其真实(测量)高度,因为它是“CONTENT_WRAP”。但它在一步缩小之后(见上面的*)!

我想这与唤醒后直接再次入睡有关,因此缺少 WAKE_LOCK 或重新计算所有大小的 UI 线程不会再次运行......

该应用程序在模拟器中运行良好,但在我的“真正的”索尼电子书阅读器上运行良好。字体大小更新失败后,我将发布显示照片。

4

0 回答 0