1.在style.xml中
<style
name="AppTheme.Black"
parent="Theme.AppCompat">
</style>
2.在res下建anim
out
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:duration="0"
android:fromAlpha="1.0"
android:interpolator="@android:anim/decelerate_interpolator"
android:toAlpha="0.0">
</alpha>
</set>
in
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:duration="0"
android:fromAlpha="0.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:toAlpha="1.0">
</alpha>
</set>
重新创建cutils
public class UiUtils {
public static int getAppTheme(Context ctx) {
String value = Preferences.getString(ctx, "activity_theme", "1");
switch (Integer.valueOf(value)) {
case 1:
return R.style.AppTheme;//白色主题
case 2:
return R.style.AppTheme_Black;
default:
return R.style.AppTheme;//默认白色
}
}
public static void switchAppTheme( Context ctx){
String value = Preferences.getString(ctx, "activity_theme", "1");
switch (Integer.valueOf(value)){
case 1:
Preferences.setString(ctx, "activity_theme", "2");
break;
case 2:
Preferences.setString(ctx, "activity_theme", "1");
break;
default:
Preferences.setString(ctx, "activity_theme", "1");
break;
}
}
重新创建Preferences类
public class Preferences {
private static final String shared_name = "user_guide";
private static SharedPreferences sp;
public static String getString(Context context, String key, String defaultValues) {
SharedPreferences sp = context.getSharedPreferences(shared_name, context.MODE_PRIVATE);
return sp.getString(key, defaultValues);
}
public static void setString(Context context, String key, String Values) {
SharedPreferences sp = context.getSharedPreferences(shared_name, context.MODE_PRIVATE);
sp.edit().putString(key, Values).commit();
}
MainActivity中oncreate前
private int theme = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
if (savedInstanceState == null) {
theme = UiUtils.getAppTheme(MainActivity.this);
} else {
theme = savedInstanceState.getInt("theme");
}
setTheme(theme)
MainActivity中的2个方法
public void Click(View v) {
UiUtils.switchAppTheme(MainActivity.this);
reload();
}
public void reload() {
Intent intent = getIntent();
overridePendingTransition(R.anim.in, R.anim.comeout);//进入动画
finish();
overridePendingTransition(R.anim.in, R.anim.comeout);
startActivity(intent);
}
有用的话就顶一下哦!