亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

三行Android代碼實(shí)現(xiàn)白天夜間模式流暢切換

 更新時(shí)間:2016年09月14日 11:31:06   作者:天羽飛龍  
這篇文章主要為大家分享了三行Android代碼實(shí)現(xiàn)白天夜間模式流暢切換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Usage xml android:background= ?attr/zzbackground app:backgroundAttr= zzbackground //如果當(dāng)前頁(yè)面要立即刷新,這里傳入屬性名稱 比如R.attr.zzbackground 傳zzbackground即可 android:textColor= ?attr/zztextColor app:textColorAttr= zztextColor // 

演示效果

 

Usage xml    

android:background="?attr/zzbackground"
 app:backgroundAttr="zzbackground"http://如果當(dāng)前頁(yè)面要立即刷新,這里傳入屬性名稱 比如R.attr.zzbackground 傳zzbackground即可 
 android:textColor="?attr/zztextColor"
 app:textColorAttr="zztextColor"http://如需立即刷新頁(yè)面效果 同上 

java

 @Override
 protected void onCreate(Bundle savedInstanceState) {
   // 在要立即切換效果的頁(yè)面調(diào)用此方法
   ChangeModeController.getInstance().init(this,R.attr.class).setTheme(this, R.style.DayTheme, R.style.NightTheme);
   //在其他頁(yè)面調(diào)用此方法 
   //ChangeModeController.setTheme(this, R.style.DayTheme, R.style.NightTheme);
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  //添加額外view至夜間管理
  // ChangeModeController.getInstance().addBackgroundColor(toolbar, R.attr.colorPrimary);
  //ChangeModeController.getInstance().addBackgroundDrawable(view,R.attr.colorAccent);
  // ChangeModeController.getInstance().addTextColor(view,R.attr.colorAccent);


  // 設(shè)置切換
  //ChangeModeController.changeDay(this, R.style.DayTheme);
  //ChangeModeController.changeNight(this, R.style.NightTheme);
 }
   
 @Override
 protected void onDestroy() {
  super.onDestroy();
  // 在onDestroy調(diào)用
  ChangeModeController.onDestory();
 } 

詳細(xì)操作描述

第一步:自定義屬性

 <?xml version="1.0" encoding="utf-8"?>
<resources>
    <attr name="zzbackground" format="color|reference"/>
    <attr name="zzbackgroundDrawable" format="reference"/>
    <attr name="zztextColor" format="color"/>
    <attr name="zzItemBackground" format="color"/>
</resources>

 第二步:配置夜間style文件 

<resources>

 <!-- Base application theme. -->
 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
  <!-- Customize your theme here. -->
  <item name="colorPrimary">@color/colorPrimary</item>
  <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
  <item name="colorAccent">@color/colorAccent</item>
  <item name="windowActionBar">false</item>
  <item name="android:windowNoTitle">true</item>
  <item name="windowNoTitle">true</item>
 </style>

 <!--日間模式 -->
 <style name="DayTheme" parent="AppTheme">
  <item name="zzbackground">@color/dayBackground</item>
  <item name="zzbackgroundDrawable">@drawable/ic_launcher</item>
  <item name="zztextColor">@color/dayTextColor</item>
  <item name="zzItemBackground">@color/dayItemBackground</item>
 </style>

 <!--夜間模式 -->
 <style name="NightTheme" parent="AppTheme">
  <item name="zzbackground">@color/nightBackground</item>
  <item name="zzbackgroundDrawable">@color/nightBackground</item>
  <item name="zztextColor">@color/nightTextColor</item>
  <item name="zzItemBackground">@color/nightItemBackground</item>

  <item name="colorPrimary">@color/colorPrimaryNight</item>
  <item name="colorPrimaryDark">@color/colorPrimaryDarkNight</item>
  <item name="colorAccent">@color/colorAccentNight</item>
 </style>


 <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
 <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
</resources>

 為相關(guān)屬性設(shè)置對(duì)應(yīng)模式的屬性值: 

<?xml version="1.0" encoding="utf-8"?>
<resources>
 <color name="dayBackground">#F2F4F7</color>
 <color name="dayTextColor">#000</color>
 <color name="dayItemBackground">#fff</color>

 <color name="nightItemBackground">#37474F</color>
 <color name="nightBackground">#263238</color>
 <color name="nightTextColor">#fff</color>
</resources> 

第三步:在布局文件中配置使用對(duì)應(yīng)屬性

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 android:orientation="vertical"
 android:background="?attr/zzbackground"
 app:backgroundAttr="zzbackground"
 tools:context="com.thinkfreely.changemode.MainActivity">

 <android.support.design.widget.AppBarLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  app:theme="@style/AppTheme.AppBarOverlay">
  <android.support.v7.widget.Toolbar
   android:id="@+id/toolbar"
   android:layout_width="match_parent"
   android:layout_height="?attr/actionBarSize"
   android:background="?attr/colorPrimary"
   app:backgroundAttr="colorPrimary"
   app:titleTextColor="?attr/zztextColor"
   app:popupTheme="@style/AppTheme.PopupOverlay"
   />
 </android.support.design.widget.AppBarLayout>

  <Button
   android:layout_width="match_parent"
   android:layout_height="120dp"
   android:gravity="center"
   android:textColor="?attr/zztextColor"
   app:textColorAttr="zztextColor"
   android:background="?attr/zzItemBackground"
   app:backgroundAttr="zzItemBackground"
   android:padding="10dp"
   android:layout_marginBottom="8dp"
   android:textSize="22sp"
   android:textAllCaps="false"
   android:text="夜間模式切換by Mr.Zk" />

 <android.support.v7.widget.RecyclerView
  android:id="@+id/recyclerView"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:scrollbars="vertical"/>
</LinearLayout> 

注意textColorAttr、backgroundAttr、backgroundDrawableAttr三個(gè)屬性。如需當(dāng)前頁(yè)面立即刷新,需填加相應(yīng)屬性。

第四步:頁(yè)面調(diào)用java代碼

 @Override
 protected void onCreate(Bundle savedInstanceState) {
   //1. 在要立即切換效果的頁(yè)面調(diào)用此方法
   ChangeModeController.getInstance().init(this,R.attr.class).setTheme(this, R.style.DayTheme, R.style.NightTheme);
   //在其他頁(yè)面調(diào)用此方法 
   //ChangeModeController.setTheme(this, R.style.DayTheme, R.style.NightTheme);
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  //2.設(shè)置切換夜間活日間模式
  //ChangeModeController.changeDay(this, R.style.DayTheme);//切換日間模式
  //ChangeModeController.changeNight(this, R.style.NightTheme);//切換夜間模式
 }
 @Override
 protected void onDestroy() {
  super.onDestroy();
  //3. 在onDestroy調(diào)用
  ChangeModeController.onDestory();
 } 

代碼調(diào)用三步,即可開始夜間之旅。
如果頁(yè)面有新創(chuàng)建的視圖要加入夜間模式控制,安卓源碼調(diào)用:

   //添加額外view至夜間管理
  // ChangeModeController.getInstance().addBackgroundColor(toolbar, R.attr.colorPrimary);
  //ChangeModeController.getInstance().addBackgroundDrawable(view,R.attr.colorAccent);
  // ChangeModeController.getInstance().addTextColor(view,R.attr.colorAccent); 

如果在改變夜間模式時(shí)有其他非標(biāo)準(zhǔn)定義的屬性時(shí),可在ChangeModeController.changeDay或ChangeModeController.changeNight之后調(diào)用如下代碼給相關(guān)屬性賦值:
   TypedValue  attrTypedValue = ChangeModeController.getAttrTypedValue(this, R.attr.zztextColor);
   toolbar.setTitleTextColor(getResources().getColor(attrTypedValue.resourceId));

源碼下載地址:http://xiazai.jb51.net/201609/yuanma/AndroidChangeMode(jb51.net).rar

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論