public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //设置对应的主题 ,在ui创建好之后设置主题无效,所以要放到setContentView()方法前面setTheme() Themeutils.onActivitycreateTheme(this); setContentView(R.layout.activity_main); } public void button(View view){ //切换日夜间模式 Themeutils.onchangeTheme(this); } }public class Themeutils { //我当前应用的主题 private static int theme=0; //日间模式主题 private static final int day_item=0; //夜间模式主题 private static final int night_item=1; public static void onActivitycreateTheme(Activity activity){ switch (theme){ case day_item: activity.setTheme(R.style.day_theme); break; case night_item: activity.setTheme(R.style.night_theme); break; } } public static void onchangeTheme(Activity activity) { //改变当前主题的theme变量 switch (theme) { case day_item: theme = night_item; break; case night_item: theme = day_item; break; } //2、重启这个activity activity.finish(); //动画 activity.overridePendingTransition(R.anim.slidingin,R.anim.slidingout); activity.startActivity(new Intent(activity, activity.getClass())); } } values 里 attrs:<resources> <attr name="textcolor" format="color"></attr> <attr name="contextcolor" format="string"></attr> </resources> colors:<resources> <color name="colorPrimary">#3F51B5</color>主题颜色 <color name="colorPrimaryDark">#303F9F</color>最上面的颜色 <color name="colorAccent">#FF4081</color>填充颜色如radiobutton选中颜色 <color name="background">#252a2e</color> <color name="unablebtn">#dcdcdc</color> <color name="dark_bg">#505050</color> <color name="light">#ECECEC</color> <color name="white">#FFFFFF</color> <color name="black">#000000</color> <color name="green">#05D992</color> <color name="zise">#E5004F</color> <color name="dark_bg1">#414141</color> <color name="pink">#FF5877</color> <color name="yellow">#FFFF00</color> </resources>strings:<resources> <string name="app_name">Yejianmoshi</string> <string name="change_day">切换白天模式</string> <string name="change_night">切换夜间模式</string> </resources> styles:<resources> <style name="day_theme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="android:windowBackground">@color/white</item> <!--日间模式对应的字体颜色 和日间模式对应的文本内容--> <item name="textcolor">@color/black</item> <item name="contextcolor">@string/change_night</item> </style> <style name="night_theme" 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="android:windowBackground">@color/dark_bg</item> <!--夜间模式对应的字体颜色 和夜间模式对应的文本内容--> <item name="textcolor">@color/white</item> <item name="contextcolor">@string/change_day</item> </style> </resources>xml:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center_horizontal" tools:context="com.example.fanyishuo.yejianmoshi.MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="50dp" android:onClick="button" android:text="?attr/contextcolor" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="100dp" android:text="Hello World!" android:textColor="?attr/textcolor" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:text="Hello World!" android:textColor="?attr/textcolor"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:text="Hello World!" android:textColor="?attr/textcolor"/> </LinearLayout
日夜模式
最新推荐文章于 2022-09-06 22:28:57 发布