爪机夜间模式,为的是在夜间使用手机时,避免手机屏幕过亮而刺伤眼睛。
那如何办呢,在此提供四种方法供大家使用:
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