懂視移動端 視頻1 視頻21 視頻41 視頻61 視頻文章1 視頻文章21 視頻文章41 視頻文章61 視頻擴展1 視頻擴展6 視頻擴展11 視頻擴展16 文章1 文章201 文章401 文章601 文章801 文章1001 資訊1 資訊501 資訊1001 資訊1501 標簽1 標簽501 標簽1001 關鍵詞1 關鍵詞501 關鍵詞1001 關鍵詞1501
當前位置: 首頁 - 手機 - 正文

android夜間模式如何設置

來源:懂視網 責編:小OO 時間:2020-05-08 00:35:50
導讀android夜間模式如何設置,關于閱讀類的app,有個夜間模式真是太重要了。那么有兩種方式可以實現(xiàn)夜間模式1:修改theme,重啟activity優(yōu)點:正兒八經的夜間模式,配色看著舒服缺點:圖片刺眼、閃屏2:使用一個帶黑色帶透明度的View,蓋在現(xiàn)有的activity上,效果類似你帶上墨鏡,看著太陽不刺眼。優(yōu)點:不用重啟activity,不閃屏;加上透明度過渡動畫,模式之間切換非常舒服,

關于閱讀類的app,有個夜間模式真是太重要了。那么有兩種方式可以實現(xiàn)夜間模式1:修改theme,重啟activity優(yōu)點:正兒八經的夜間模式,配色看著舒服缺點:圖片刺眼、閃屏2:使用一個帶黑色帶透明度的View,蓋在現(xiàn)有的activity上,效果類似你帶上墨鏡,看著太陽不刺眼。優(yōu)點:不用重啟activity,不閃屏;加上透明度過渡動畫,模式之間切換非常舒服,解決了1中,白底e79fa5e98193e58685e5aeb931333361323561圖片依舊刺眼的問題。;缺點:配色沒變化,就算帶上墨鏡,白天依舊是白天。因此,本方案整合了兩種解決方案。在夜間配色的基礎上,再加上一層墨鏡,讓圖片也變得柔和起來,效果圖如下:可以看待chrome圖標的白色底,在夜間模式下也變得柔和了好,下面來講講具體的實現(xiàn)步驟,本環(huán)節(jié)使用的開發(fā)環(huán)境是android Studio1 首先,在values下要準備好三個文件,沒有就自己創(chuàng)建attrs.xml(聲明屬性的類型,布局xml中用) reference可以使用系統(tǒng)的資源ID,比如R.color.gray; color可以直接使用#ffffff顏色代碼<?xml version="1.0" encoding="utf-8"?><resources><attr name="containerBackground" format="reference|color"></attr><attr name="cardBackground" format="reference|color"></attr><attr name="titleColor" format="reference|color"></attr><attr name="textColor" format="reference|color"></attr><attr name="selectorBtn" format="reference"></attr><attr name="selectorListItem" format="reference"></attr></resources>colors.xml(調色板,集中管理顏色hex)遵循 優(yōu)秀格式規(guī)范 ,即調色板模式,避免使用btn1,btn2,fontTitle,fontText之類的顏色名。<?xml version="1.0" encoding="utf-8"?><resources><color name="white">#fafafa</color><color name="white_dark">#f3f3f3</color><color name="gray_light">#cccccc</color><color name="gray">#777</color><color name="gray_dark">#383838</color><color name="green_light">#8e9ea4</color><color name="green">#34515c</color><color name="green_dark">#1e3e4a</color><color name="night_mask">#90000000</color></resources>styles.xml(日間、夜間主題)<resources><!-- Application theme. --><style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"></style><!-- 日間模式 --><style name="AppTheme.day" parent="AppTheme"><item name="containerBackground">@color/white_dark</item><item name="titleColor">@color/gray_dark</item><item name="textColor">@color/gray</item><item name="selectorBtn">@drawable/navigator_list_item_day</item><item name="selectorListItem">@drawable/list_item_day</item></style><!-- 夜間模式 --><style name="AppTheme.night" parent="AppTheme"><item name="containerBackground">@color/green_dark</item><item name="titleColor">@color/white_dark</item><item name="textColor">@color/green_light</item><item name="selectorBtn">@drawable/navigator_list_item_night</item><item name="selectorListItem">@drawable/list_item_night</item></style></resources>2定義activity父類,自動托管日間、夜間模式BaseApplication就是自己包裝的Application,通過它,保存日間、夜間模式Application和Activity,Service一樣是android框架的一個系統(tǒng)組件,當android程序啟動時系統(tǒng)會創(chuàng)建一個 application對象,用來存儲系統(tǒng)的一些信息。通常我們是不需要指定一個Application的,這時系統(tǒng)會自動幫我們創(chuàng)建,如果需要創(chuàng)建自己 的Application,也很簡單創(chuàng)建一個類繼承 Application并在manifest的application標簽中進行注冊(只需要給Application標簽增加個name屬性把自己的 Application的名字定入即可)。android系統(tǒng)會為每個程序運行時創(chuàng)建一個Application類的對象且僅創(chuàng)建一個,所以Application可以說是單例 (singleton)模式的一個類.且application對象的生命周期是整個程序中最長的,它的生命周期就等于這個程序的生命周期。因為它是全局 的單例的,所以在不同的Activity,Service中獲得的對象都是同一個對象。所以通過Application來進行一些,數(shù)據(jù)傳遞,數(shù)據(jù)共享 等,數(shù)據(jù)緩存等操作。public class BaseActionBarActivity extends ActionBarActivity {private BaseApplication mBaseApp = null;private WindowManager mWindowManager = null;private View mNightView = null;private LayoutParams mNightViewParam;private boolean mIsAddedView;@Overrideprotected void onCreate(Bundle savedInstanceState) {mBaseApp = (BaseApplication) getApplication();if (mBaseApp.isNightMode())setTheme(R.style.AppTheme_night);elsesetTheme(R.style.AppTheme_day);super.onCreate(savedInstanceState);mIsAddedView = false;if (mBaseApp.isNightMode()) {initNightView();mNightView.setBackgroundResource(R.color.night_mask);}}@Overrideprotected void onDestroy() {if (mIsAddedView) {mBaseApp = null;mWindowManager.removeViewImmediate(mNightView);mWindowManager = null;mNightView = null;}super.onDestroy();}public void ChangeToDay() {mBaseApp.setIsNightMode(false);mNightView.setBackgroundResource(android.R.color.transparent);}public void ChangeToNight() {mBaseApp.setIsNightMode(true);initNightView();mNightView.setBackgroundResource(R.color.night_mask);}/*** wait a time until the onresume finish*/public void recreateOnResume() {new Handler().postDelayed(new Runnable() {public void run() {recreate();}}, 100);}private void initNightView() {if (mIsAddedView == true)return;mNightViewParam = new LayoutParams(LayoutParams.TYPE_APPLICATION,LayoutParams.FLAG_NOT_TOUCHABLE | LayoutParams.FLAG_NOT_FOCUSABLE,PixelFormat.TRANSPARENT);mWindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);mNightView = new View(this);mWindowManager.addView(mNightView, mNightViewParam);mIsAddedView = true;}}值得一提的是recreateOnResume()函數(shù),因為是從Resume里面重建activity的(避免閃屏)此時, 直接調用系統(tǒng)的recreate函數(shù)時,會報錯,原因是resume還沒執(zhí)行完,就被recreate了,因此,我們函數(shù)需要延時一會,等待系統(tǒng)完成resume就好了。一般延時1毫秒就可以了,但是我的app里面用到抽屜式導航欄,保存的時間要長點。準備工作到這里已經結束了。只要activity集成自該父類,就會自動托管日間、夜間模式了3調用方式子類只要調用ChangeToDay、ChangeToNight就可以完成模式的切換了。別忘了recreate activity來生效哦,實例代碼如下:void changeViewMode() {boolean isNight = getMyApplication().isNightMode();if (isNight)ChangeToDay();elseChangeToNight();recreate();}OK,如過你能堅持看到這里,說明閣下是有耐心的人,奉上一個彩蛋。關于WebView網頁如何實現(xiàn)日間、夜間模式。這個問題比我們現(xiàn)象的要簡單的多。因為網頁么,在生成html內容時,只要根據(jù)日間、還是夜間模式,替換css路徑為日間.css、夜間.css就好了。栗子來了,瞧,就是這個"{style}",我們要替換的對象。<html><head><title>Cnblogs</title><link rel="stylesheet" type="text/css" href="{style}"/><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0,minimum-scale=1.0, user-scalable=no"/></head>在對webview加載內容文本時,替換該字符串的cssreplace("{style}",baseApplication.isNightMode() ? "style_night.css" : "style_day.css")結構如下:好了,大概思路,步驟代碼都已經給出了,各位可以輕松給自己的app加上夜間模式,就是在設置里提供一個ToggleButton,打開或者關閉夜間模式。同時在新的API里提供接口,對所有支持夜間模式的應用進行統(tǒng)一調度。打開總開關,默認7a64e58685e5aeb931333339666662開啟其他第三方應用的夜間模式。然后也設置一個規(guī)則,可忽略某個軟件。再自動化一些,可以設置個時間段,即默認開啟夜間模式的時間段。這個Feature的實現(xiàn)必然要第三方開發(fā)者支持。雖然有時候夜間模式看起來可有可無,但是對于喜歡睡前玩一下手機的人來說,也是個挺人性化的功能呢。當然目前Android API還沒有這個,不過我們還是可以在自己應用中給用戶接口,讓用戶選擇夜間模式,或者設置個時間段觸發(fā)該功能。寫了個小Demo,簡單了實現(xiàn)了切換夜間模式,總結一下:在工程目錄res/values/下新建attrs.xml,內容如下:view sourceprint?01.<?xml version="1.0" encoding="utf-8"?>02.<resources>03. 04.<attr name="btnColor" format="color" />05.<attr name="mainBackground" format="color" />06.<attr name="mainTextColor" format="reference|color" />07.<attr name="textString" format="string" />08. 09.</resources>然后就是在style中定義兩種主題,每一種主題都要至少包含以上attrs中的幾種屬性:view sourceprint?01.<?xml version="1.0" encoding="utf-8"?>02.<resources>03. 04.<!-- 默認 -->05.<style name="MyThemeDefault" parent="@android:style/Theme">06.<item name="btnColor">#00ff00</item>07.<item name="mainBackground">#ffffff</item>08.<item name="mainTextColor">#000000</item>09.<item name="textString">默認主題</item>10.</style>11. 12.<!-- 夜間 -->13.<style name="MyThemeNight" parent="@android:style/Theme">14.<item name="btnColor">#0000ff</item>15.<item name="mainBackground">#000000</item>16.<item name="mainTextColor">#ffffff</item>17.<item name="textString">夜間主題</item>18.</style>19. 20.</resources>主題定義好了,然后就是在布局文件中引用了,里面有?號的地方就是引用以上定義的label:view sourceprint?01.<?xml version="1.0" encoding="utf-8"?>02.<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"03.android:layout_width="fill_parent"04.android:layout_height="fill_parent"05.android:background="?mainBackground"06.android:orientation="vertical" >07. 08.<TextView09.android:layout_width="fill_parent"10.android:layout_height="wrap_content"11.android:text="?textString" />12. 13.<ImageView14.android:id="@+id/ivBook"15.android:layout_width="62dip"16.android:layout_height="42dip"17.android:layout_gravity="center"18.android:layout_marginTop="0dip"19.android:gravity="center"20.android:src="?btnColor" />21. 22.<Button23.android:id="@+id/btnSet"24.android:layout_width="wrap_content"25.android:layout_height="wrap_content"26.android:layout_marginTop="50dp"27.android:text="改變主題" />28. 29.<Button30.android:id="@+id/btnGet"31.android:layout_width="wrap_content"32.android:layout_height="wrap_content"33.android:layout_marginTop="50dp"34.android:text="Get Flag" />35. 36.</LinearLayout>下面就是在Activiy中定義要使用那種主題了:view sourceprint?01.public class MainActivity extends Activity {02.private boolean blFlag = false;03.private ImageView ivBook;04.private Button btnSet;05.private Button btnGet;06. 07.@Override08.public void onCreate(Bundle savedInstanceState) {09.super.onCreate(savedInstanceState);10.this.setTheme(R.style.MyThemeDefault);11.setContentView(R.layout.main);12.btnSet = (Button) findViewById(R.id.btnSet);13.btnGet = (Button) findViewById(R.id.btnGet);14.ivBook = (ImageView) findViewById(R.id.ivBook);15.btnSet.setOnClickListener(new onClickListenerImp());16.btnGet.setOnClickListener(new onClickListenerImp());17.ivBook.setOnClickListener(new onClickListenerImp());18. 19.}20. 21.class onClickListenerImp implements OnClickListener {22.@Override23.public void onClick(View v) {24.// TODO Auto-generated method stub25.if (v == btnSet || v == ivBook) {26.if (blFlag) {27.setTheme(R.style.MyThemeDefault);28.blFlag = false;29.} else if (!blFlag) {30.setTheme(R.style.MyThemeNight);31.blFlag = true;32.}33.setContentView(R.layout.main);34.btnSet = (Button) findViewById(R.id.btnSet);35.btnGet = (Button) findViewById(R.id.btnGet);36.ivBook = (ImageView) findViewById(R.id.ivBook);37.btnSet.setOnClickListener(new onClickListenerImp());38.btnGet.setOnClickListener(new onClickListenerImp());39.ivBook.setOnClickListener(new onClickListenerImp());40.} else if (v == btnGet) {41.Toast.makeText(MainActivity.this, "blFlag: " + blFlag,42.Toast.LENGTH_SHORT).show();43.}44.}45. 46.}47. 48.}要注意的是,在onClickListenerImp()類中的view sourceprint?1.setContentView(R.layout.main);這句后面,要重新綁定各組件及其,不然只能監(jiān)聽一次。這是因為在setContentView后,組件不是之前那個組件了,快捷百鍵(Ctrl+Alt+S)或度File——>Settings,打開問Settings界面“Appearance & Behavior——>Appearance”右答邊欄UI Options,在Theme選項中回選擇“答Darcula”即可本回答被提問者采納m.gy2thfx.cn防采集。

手機自帶

現(xiàn)在安卓手機基本都自帶夜間模式,有的叫做深色模式。

手機百度取消夜間模式,具體操作步驟如下:1、在手機應用中,打開手機百度,進入到手機百度的主界面,點

進入手機設置,點擊顯示和亮度。

  安卓7.0開啟夜間模式介紹:  Android 7.0正式版已經發(fā)布,然而此前在開發(fā)者預覽版

看到有個深色模式,勾選上。

1、打開手機界面,找到手機上的設置選項,點擊進入設置頁面。2、打開設置界面后,找到界面中的“顯示

勾選上之后都變成夜間深色了,不管打開什么軟件或者網頁,都是夜間模式。

三更半夜不睡覺,躲在被窩里玩手機。相信這樣的事情絕對不止我一個人干過,未來也依然會有無數(shù)人這么干下去

還可以自主調整亮度,色彩和護眼等。

關于閱讀類的app,有個夜間模式真是太重要了。那么有兩種方式可以實現(xiàn)夜間模式1:修改

色彩與護眼里可以勾選自然色彩顯示,這樣會根據(jù)不同環(huán)境自主調節(jié)。還可以設置色彩調節(jié)與色溫,還有護眼模式的開啟等。

為了方便我們實現(xiàn)Android夜間模式,我們下載一個軟件“月食-夜間模式”,該軟件簡單,免費,無廣告

色彩調節(jié)與色溫就根據(jù)個人喜歡的顏色選擇好即可。護眼模式可以設置開啟時間等,設定好了到時就自動啟動了,非常方便。

1、同為Android手機,不同牌子的,設置方法不同。2、以魅族手機為例,登錄qq后,向右劃就會出

第三方設置

如果不想用手機自帶,非要用第三方的也可以,去商城搜索夜間,會有很多夜間模式的軟件,下載一個。

原理很簡單:利用setTheme調用不同的風格,而白天與黑夜的區(qū)別就是在于夜間模式直接利用黑色背景,

打開這種軟件,一般第三方的夜間模式軟件里也可以直接在屏幕上調節(jié)屏幕亮度。

原理很簡單:利用setTheme調用不同的風格,而白天與黑夜的區(qū)別就是在于夜間模式直接利用黑色背景,

還有幾種顏色可以選擇,其實并沒有手機自帶的多。

手機百度取消夜間模式,具體操作步驟如下:1、在手機應用中,打開手機百度,進入到手機百度的主界面,點

另外會提供一些提醒,比如用眼時間,用眼報告等,這些功能看個人喜好,如果覺得有用可以用這些第三方的。缺點就是需要占用內存來安裝。

  安卓7.0開啟夜間模式介紹:  Android 7.0正式版已經發(fā)布,然而此前在開發(fā)者預覽版

為了方便我們實現(xiàn)Android夜間模式,我們下載一個軟件“月食-夜間模式”,該軟件簡單,免費,無廣告,無打擾。Android夜間模式安裝好后我們會看到軟件的圖標,7a686964616fe59b9ee7ad9431333365643464點擊該圖標后,你的Android手機亮度就會暗下來,再次點擊會恢復之前的狀態(tài),是不是很簡單。Android夜間模式如果你希望使用一些高級的功能,可以下拉通知欄,找到該應用的圖標,點擊進去。進去之后你可以做以下幾件事情:1.開啟或者關閉Android夜間模式2.快速選擇自己喜歡的濾鏡3.自由調節(jié)屏幕的亮度4.自由設置自己喜歡的濾鏡5.開啟或者關閉通知欄圖標(注:關閉后可以通過雙擊應用的圖標再次開啟)6.設置全局背景圖片(可以展現(xiàn)在任何應用里面,如微信,瀏覽器)Android夜間模式Android夜間模式開啟或者關閉Android夜間模式:上文第二步,只需點擊應用圖標即可開啟或者關閉夜間模式,當然你也可以在進入應用后自由開啟或者關閉。方法是點擊這個復選框Android夜間模式快速設置自己喜歡的濾鏡:點擊應用右側的“+”號,可以快速設置一個自己喜歡的夜間模式顏色。Android夜間模式調節(jié)夜間模式的亮度:除了預設的亮度外,我們還可以自己調節(jié)屏幕的亮度。Android夜間模式自定義自己喜歡的夜間模式濾鏡顏色:除了預設的集中夜間模式顏色外,應用還提供了一個可以讓用戶自定義的調色器,我們可以根據(jù)自己的喜好去自己配色。Android夜間模式開啟或者關閉通知欄:“月食-夜間模式”考慮到一部分用戶的使用習慣,允許用戶關閉該應用在通知欄的信息,這樣應用就會完全浸沒在后臺運行。我們只需要點擊桌面圖標,開啟夜間模式;再次點擊桌面圖標,關閉夜間模式。注:如果想再次進入應用,可以雙擊桌面圖標,這樣通知欄再次開啟,可以從通知欄進入應用。Android夜間模式設置背景圖片:“月食-夜間模式”一個非常強大的功能。它允許我們設置一張圖片作為任何應用的背景。應用內置了3張圖片可供選擇,如果希望設置自己的圖片,可以購買高級版本。Android夜間模式Android夜間模式Android夜間模式Android夜間模式Android夜間模式本回答被網友采納,三星手機本機沒有自帶此功能,可以嘗試下載第三方軟件實現(xiàn),1、同為Android手機,不同牌子的,設置方法不同。2、以魅族手機為例,登錄qq后,向右劃就會出現(xiàn),工具欄,點擊最下面夜間模式即可。如圖:,可能是扣扣軟件的問題,皮膚是扣扣的軟肋..本回答被提問者采納內容來自m.gy2thfx.cn請勿采集。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯(lián)系,我們將在第一時間刪除處理。TEL:0731-84117792 E-MAIL:11247931@qq.com

  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

我的世界如何聯(lián)機 全民k歌如何創(chuàng)建歌房 微軟應用商店打不開如何解決 如何判斷照片是本人還是網圖 手機斗魚怎么看回放 中國電信如何查詢個人軌跡 微信鈴聲如何設置 電腦版吃雞如何下載 幾步教你做黑白頭像 電腦屏幕黑白如何調回來 uu加速器如何下載游戲 win10系統(tǒng)的系統(tǒng)自帶游戲去哪兒了 創(chuàng)造與魔法雪原熊大位置以及捕捉攻略 搜狗瀏覽器保存網頁為圖片后變成黑色怎么解決 《公主連結Re:Dive》臺服如何下載及推薦 “該內存不能為read錯誤”如何解決 微信紅包語音提醒如何設置 手機qq禁言如何設置 可以下載國外手游的app 如何用手機將圖片轉為黑白的? 網站變黑白灰色的4種代碼詳細講解 最新春分祝福短信大全,春分節(jié)氣祝福語 什么?大暑吃西瓜要注意?這些禁忌居然都沒聽說過。 處暑過后防秋燥,衣食住行要做到四點 霜降節(jié)氣是胃病高發(fā)期,常吃3種食物,健脾暖胃、遠離便秘 霜降前后養(yǎng)生必吃的十種食物,記好了每天吃一種 【清燉牛肉蘿卜湯】食譜,霜降過后,這道湯必喝 霜降以后易感冒,多給家人吃這個,消炎殺菌,做餡真鮮! 夏日炎炎沒什么胃口?老蘇州大暑節(jié)氣照樣大口吃肉 &quot;散熱排毒可瘦身&quot;,大暑適當吃辣竟然有這么多好處 大暑養(yǎng)生小常識:不要熬夜,注意避暑 大暑吃“三薯”,是哪“三薯”呢? 雙十一護膚品牌套路滿滿,真正劃算的只有這兩個大牌! 雙十一哪些熱門護膚品值得買?最詳細買買買攻略 比免稅店還便宜!雙11熱銷化妝品剁手看這一圖就夠 2019雙十一大牌護膚品推薦清單,必搶爆品“手慢無”! 雙十一快到了!網紅帶貨的這些“坑”,不得不防 雙十一避雷指南丨這些網紅護膚品,用一次就后悔! 趁早拔草!這種網紅貨雙十一謹慎搶購 網紅洗面奶大測評,是否可以列入雙十一清單榜?
Top