日夜模式

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


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值