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

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


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


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

你可能感兴趣的:(android,夜间模式,换皮肤)