昨天晚上无聊的时候下载到了一个Android手电筒的程序,里面有很多东西我都没有接触过~硬着头皮把代码读完,然后自己仿照着写了一下,遇到了一些问题,也学到了一些东西,写篇日志记录一下。
首先是手电筒程序使用的基本原理是屏幕背光的设置,需要设置两点,一个是屏幕的颜色,这个可以利用view的setBackgroundColor来完成。另一个则必须设置屏幕的亮度,也就是Brightness。请看下面两段代码:
获取屏幕亮度:
设置屏幕亮度:
获取屏幕的亮度,我们使用的是Settings.System的信息,通过这些信息,我们可以获取到屏幕亮度的int值。至于设置屏幕亮度,原本打算使用的是IHardwareService,但是那个接口貌似已经不能使用了(我使用的是Android SDK1.5),在Google上找了一下,发现原来LayoutParams就可以设置亮度,只需要先获取,设置之后再set就可以了。
至此第一个关键问题就解决了~还算不赖~
接下来在范例程序中使用了一个WakeLock。这个Lock的具体作用我不是很清楚~大家可以自行Google~要获取这个Lock可以用一下的代码实现:
用完了之后别忘了release!
但是在程序执行的过程中总是执行到w.acquire()就异常~后来发现原来使用这个Lock是需要Permission的!在manifest里面加上一个uses-permission就可以了!代码如下:
好啦~完成手电筒程序的要点大家都清楚了~~最后是把完整的代码贴上来~大家可以下载试用~我的SDK版本是1.5~
XML代码:(main.xml)
Java代码: