//添加依赖
compile 'com.android.support:design:23.4.0'
//修改res-values-styles
<resources> <style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <style name="AppTheme.NoActionBar"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> </resources>
//在res中新建values-night 创建colors
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#2196F3</color> <color name="colorPrimaryDark">#1976D2</color> <color name="colorAccent">#CDDC39</color> </resources>//主布局
<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context="com.example.administrator.riye.MainActivity"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> </android.support.design.widget.AppBarLayout> <include layout="@layout/content_main" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" android:src="@android:drawable/ic_dialog_email" /> </android.support.design.widget.CoordinatorLayout>
//布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="com.example.administrator.riye.MainActivity" tools:showIn="@layout/activity_main"> <Button android:id="@+id/btn_auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="自动模式" /> <Button android:id="@+id/btn_day" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="日间模式" /> <Button android:id="@+id/btn_night" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="夜间模式" /> </LinearLayout>
//主代码
import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatDelegate; import android.view.View; public class MainActivity extends AppCompatActivity implements View.OnClickListener { { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.btn_auto).setOnClickListener(this); findViewById(R.id.btn_day).setOnClickListener(this); findViewById(R.id.btn_night).setOnClickListener(this); findViewById(R.id.fab).setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_auto: { getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_AUTO); recreate(); break; } case R.id.btn_day: { getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO); recreate(); break; } case R.id.btn_night: { getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES); recreate(); break; } } } }