日夜模式

来源:互联网 发布:中日农产品贸易数据 编辑:程序博客网 时间:2024/04/26 13:49
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


 
原创粉丝点击