我计划进行后台服务,这会使屏幕闪烁/闪烁,直到用户触摸屏幕。
我不知道如何使屏幕闪烁的方法 - 只有通过产生的活动才能通过亮度和控制来学习。
想要在屏幕上进行换色,即黑白或屏幕开/关,以使其比亮度更明显。
答案 0 :(得分:12)
我用它来屏幕闪烁,在这段代码中我的relativeLayout(HomeLayout)会闪烁。
Animation animation = new AlphaAnimation(1, 0); // Change alpha
// from fully
// visible to
// invisible
animation.setDuration(500); // duration - half a second
animation.setInterpolator(new LinearInterpolator()); // do not alter
// animation
// rate
animation.setRepeatCount(Animation.INFINITE); // Repeat animation
// infinitely
animation.setRepeatMode(Animation.REVERSE); // Reverse animation at
// the
// end so the layout will
// fade back in
relativeLayout.startAnimation(animation);
当您触摸屏幕或按钮以清除动画时,添加此代码。
relativeLayout.clearAnimation();
答案 1 :(得分:4)
您可以通过自己的服务与WakeLock
:
使用:
获取WakeLock
PowerManager powerMan = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wakeLock = powerMan.newWakeLock(
PowerManager.SCREEN_DIM_WAKE_LOCK |
PowerManager.ACQUIRE_CAUSES_WAKEUP, "wakelockTag");
然后打开屏幕:
wakeLock.acquire();
然后再将其关闭:
wakeLock.release();
您可以将其置于Thread
睡眠状态,或使用Timer
创建闪光灯。
例如:
new Thread() {
public void run() {
boolean screenOn = false;
for (int i = 0; i < 5; i++) {
try {
sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
if (screenOn) {
wakeLock.acquire();
} else {
wakeLock.release();
}
}
}
}.run();
它不会是黑/白,只是打开/关闭。
如果您想要黑/白,则必须同时取消KeyLock
(查找 Android键盘),然后推送完全Activity
黑色,然后像以前一样将Activity
更改为Timer
或Thread
。还有更多的工作。
请务必在AndroidManifest.xml
<uses-permission android:name="android.permission.WAKE_LOCK" />
如果沿着这条路线行驶,则需要其他权限来解锁KeyGuard
。