四种爪机夜间模式的实现思路

爪机夜间模式,为的是在夜间使用手机时,避免手机屏幕过亮而刺伤眼睛。


那如何办呢,在此提供四种方法供大家使用:


1.直接调整屏幕亮度

夜间模式:亮度=50% * 最大亮度

非夜间模式:调回原模式


2.在Window上加一层半透明的View

使用下面的代码就可以很简单的实现了

		if (layer == null) {
			layer = new TranslucentLayer(this);
			layer.setAlpha(0.5f);
		}
		WindowManager windowMgr = getWindowManager();
		if (layerAdded) {
			windowMgr.removeViewImmediate(layer);
		} else {
			WindowManager.LayoutParams lp = new WindowManager.LayoutParams(LayoutParams.MATCH_PARENT,
					LayoutParams.MATCH_PARENT, LayoutParams.TYPE_APPLICATION, LayoutParams.FLAG_NOT_TOUCHABLE, 0);
			windowMgr.addView(layer, lp);
		}
		layerAdded = !layerAdded;

new WindowManager.LayoutParams这段代码我不是很确定,大家最好自己读下API。

其中TranslucentLayer是我自己定义的 View ,重写了其onTouchEvent,使之一直返回false。


3.换皮肤式解决方式(一)

每套皮肤使用自己的一套theme,使用attrs.xml+styles.xml+Activity.setTheme()来设置自己的主题以实现换皮肤,要求资源保存在本地。


4.换皮肤式解决方式(二)

图片等资源不在本地,可以由网上下载(可以作为.zip/.apk下载)后加载,但更换起来比较麻烦,需要大量代码配合。

可参见:http://blog.csdn.net/suiyc/article/details/6329212


希望能帮到大家 LOL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值