我正在尝试解决以下任务:将亮度从100%平滑地变化到0%,但无法获得平滑效果。想强调我正在使用以下的亮度变化方法,这是推荐的方法。
WindowManager.LayoutParams lp = window.getAttributes();
lp.screenBrightness = floatPercent;
window.setAttributes(lp);
嗯,显然它是有效的,但不够流畅。我会描述逻辑:
我有一个改变屏幕亮度的线程:
while (isRunning()) {
Thread.sleep(sleepTime);
spentTime+=sleepTime;
view.post(new Runnable() {
public void run() {
changeBrightness();
}
});
}
我有亮度变化的持续时间,例如10秒。 我按照上面的代码片段计算
floatPercent
的下一个值,其中sleepTime
应始终小于50ms。
所以看起来它应该是平滑的。
但是我总是得到不平滑的过渡。这尤其涉及亮度为0%-5%的范围。
在这个亮度范围内完全失去了平滑性。我已经在Google Android开发者组上发布了这个问题,但无论如何可能有人已经在这个领域进行了调查。