我创建了一个应用程序,在启动时会显示一些文本行。它开始缩放此文本,直到它使用setTextSize填充屏幕(DisplayHeight)和覆盖onSizeChanged的CustomLinearLayout。这类似于一些“自动调整TextView”类,可以通过stackoverflow /和/或/ github找到。
我的解决方案(显示电子书/ eInk的每日圣经段落)在启动时运作良好。
当应用程序显示/缩放文本时,它会通过扩展BroadcastReceiver并设置重复警报来设置计时器:
alarmMgr.setRepeating(
AlarmManager.RTC_WAKEUP,
dayStart.getTimeInMillis(),
AlarmManager.INTERVAL_DAY,
alarmIntent
);
尽管我花了一些时间才能让这个唤醒功能得以实现。当应用程序唤醒时,它会更新文本并将文本大小设置为初始的“最小”大小,并应再次开始扩展它们。
现在的问题是,包含大小文本的“TextView”在更改TextView值和字体大小之后不再“缩小”其实际(测量)高度,因为它是“CONTENT_WRAP”。但它是在一步缩小之后做的(见上文*)!
我想这与唤醒后直接再次入睡有关,所以缺少WAKE_LOCK或重新计算所有尺寸的UI线程不会再次运行...
该应用程序在模拟器中运行良好,但在我的“真正的”索尼电子书阅读器上运行良好。我将在失败的字体大小更新后发布显示的照片。