日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android夜间模式的几种实现

發布時間:2025/3/20 Android 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android夜间模式的几种实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、直接修改widget顏色,這種方式實現起來最簡單,但需要每個控件都去修改,太過復雜。例如:

/*** 相應交互,修改控件顏色* @param view*/public void onMethod1Click(View view) {if (view.getId() == R.id.btn_method1) {int theme = NightModeUtils.getSwitchDayNightMode(this);NightModeUtils.setBackGroundColor(this, mRootView, theme);NightModeUtils.setTextColor(this, findViewById(R.id.text), theme);NightModeUtils.setDayNightMode(this, theme);}}

NightModeUitls修改顏色方法

/*** 修改背景色* @param context* @param view* @param theme*/public static void setBackGroundColor(Context context, View view, int theme) {int color = context.getResources().getColor(theme == THEME_SUN ? R.color.light_color : R.color.night_color);view.setBackgroundColor(color);}/*** 修改文字色* @param context* @param view* @param theme*/public static void setTextColor(Context context, View view, int theme) {int color = context.getResources().getColor(theme == THEME_SUN ? R.color.night_color : R.color.light_color);TextView textView = (TextView)view;textView.setTextColor(color);}

二、通過修改Theme,更新應用主題。這種方法問題在于,需要重啟Activity才能完成界面渲染。

在Activity中調用setContentView之前進行Theme設置:

@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);NightModeUtils.onActivityCreateSetTheme(this);setContentView(R.layout.activity_main);}

?

NightModeUitls設置Theme方法:

/** Set the theme of the activity, according to the configuration. */public static void onActivityCreateSetTheme(Activity activity) {int theme = getDayNightMode(activity);switch (theme) {case THEME_SUN:activity.setTheme(R.style.AppSunTheme);break;case THEME_NIGHT:activity.setTheme(R.style.AppNightTheme);break;default:break;}}

?

三、通過怎加一層遮光罩來實現。效果不是很理想。

通過WindowManager,將一個透明背景的TextView加到Activity主界面中。代碼如下:

private void night() {if (mNightView == null) {mNightView = new TextView(this);mNightView.setBackgroundColor(0xaa000000);}WindowManager.LayoutParams lp = new WindowManager.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.TYPE_APPLICATION,WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,PixelFormat.TRANSLUCENT);lp.gravity = Gravity.BOTTOM;lp.y = 10;try {mWindowManager.addView(mNightView, lp);} catch (Exception ex) {}}private void day() {try {mWindowManager.removeView(mNightView);} catch (Exception ex) {}}

四、最后來看一下Dialog需要怎么實現夜間模式。

AlertDialog.Builder 有一個帶style id參數的構造函數,我們就通過這個構造函數來實現Dialog主題的修改,從而達到夜間模式。

public static AlertDialog.Builder createBuilder(Context context) {if (NightModeUtils.getDayNightMode(context) == NightModeUtils.THEME_SUN) {return new AlertDialog.Builder(context);} else {return new AlertDialog.Builder(context, R.style.NightDialog);}}

我們通過如上方法來獲取Builder,實現主題切換。其中R.style.NightDialog我采用如下方式:

<style name="NightDialog" parent="android:Theme.Holo.Dialog"><item name="android:windowBackground">@android:color/transparent</item></style>

在android?honeycomb之前的版本Theme.Dialog.Alert與AlertDialog這兩個style是public的,可以通過修改主題時,重新定義這兩個style實現dialog主題的修改,但之后的版本已經將他們開放關閉了。所以,我通過上面的辦法實現了dialog的主題修改。

Demo源碼


來源:?http://www.cnblogs.com/yuanzhanxue/p/3470820.html

來自為知筆記(Wiz)

總結

以上是生活随笔為你收集整理的Android夜间模式的几种实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线天堂中文在线资源网 | 亚洲欧洲久久久 | 播色屋 | 爱爱视频在线免费观看 | 蜜臀99久久精品久久久久小说 | 日韩一区二区不卡视频 | 在线视频日韩精品 | 轻点好疼好大好爽视频 | 国产精品美女高潮无套 | 操操干干 | 亚洲激情免费 | 女人十八毛片嫩草av | 深夜国产福利 | 国产99久久久久久免费看 | 色97| 欧美日韩一区二区在线观看视频 | 大尺度一区二区 | 美女试爆场恐怖电影在线观看 | 日韩欧美偷拍 | 欧美激情综合色综合啪啪五月 | 色先锋资源网 | 蜜桃视频日韩 | 一级在线免费观看 | www.欧美.com| 丰满女人又爽又紧又丰满 | 亚洲精品国产精品乱码不卡√香蕉 | 深爱激情综合网 | 夜夜嗨av色一区二区不卡 | 欧美精品123 | 老妇裸体性激交老太视频 | www日日| 性生活视频软件 | 成人做爰www免费看视频网站 | 久久精品亚洲a | 亚洲激情a | 图片区亚洲色图 | 人人精品久久 | 亚洲美女www午夜 | 久久久综合 | 久草操| av之家在线 | 久草福利网 | 性欧美精品中出 | 少妇一级淫片免费视频 | 欧美乱做爰xxxⅹ久久久 | 97xxxxx| 黄色精品视频 | 日本伦理一区 | a视频| 潘金莲一级淫片aaaaa | 毛片视频网站 | 美女的诞生免费观看在线高清 | 久久久久亚洲av无码专区 | 成人永久免费 | 国产丰满果冻videossex | 欧美jizzhd欧美18 | 国产美女福利视频 | 97免费视频观看 | 丰满人妻一区二区三区免费视频棣 | 精品视频久久久久久 | 亚洲爽爆| 丁香婷婷九月 | 欧av在线 | 丰满人妻熟妇乱偷人无码 | 五月天看片| 国产91精品一区二区麻豆亚洲 | 少妇精品高潮欲妇又嫩中文字幕 | 久久99精品久久久久久琪琪 | 久久露脸 | 天天操天天操 | v天堂中文在线 | 成人av免费在线播放 | 午夜久久久久久久久 | 熟妇高潮一区二区高潮 | 日韩精品网 | 91久久精品一区二区别 | 亚洲女则毛耸耸bbw 边吃奶边添下面好爽 | av777777| 99爱在线 | 久久久久亚洲av成人网人人软件 | 夜夜爽天天爽 | 日韩人妻精品无码一区二区三区 | 五月婷婷伊人网 | 日韩精品你懂的 | 一区二区三区在线免费观看视频 | 成年人性生活免费视频 | 亚洲大片在线观看 | 毛片aaa| 色狠狠一区 | 国产视色| 最新中文字幕在线视频 | 奇米影视9999| 亚洲乱码精品久久久久 | 97夜色| 99精品成人 | 国产 一二三四五六 | 国产一区二区三区四区精 | 好吊色欧美一区二区三区视频 | 亚洲精品.www |