安卓中白天模式和夜间模式的切换
来源:互联网 发布:网络测试是什么 编辑:程序博客网 时间:2024/05/09 02:51
前言
安卓是自带模式的,我们在styles.xml便可以设置标题栏显示的颜色(白天和夜间模式当然也就可以通过切换主题来实现)
设置切换之间的动画
在res下面新建anim文件夹然后在里面创建切换动画
in.xml
<!-- interpolator 这个是动画变化的频率 快 慢 等--> <alpha android:duration="0" android:fromAlpha="0.0" android:interpolator="@android:anim/accelerate_interpolator" android:toAlpha="1.0"> </alpha>
out.xml
<alpha android:duration="0" android:fromAlpha="1.0" android:interpolator="@android:anim/decelerate_interpolator" android:toAlpha="0.0"> </alpha>
在styles里面设置要切换的主题
<!-- Base application theme. --> <style name="AppTheme" 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> </style> <!--黑夜主题--> <style name="AppTheme.Black" parent="Theme.AppCompat"> </style>
在Preferences.class
定义一个传值的类
ublic class Preferences { private static final String shared_name="guide"; private static SharedPreferences sp; public static String getString(Context context, String key, String defaultValues) { sp = context.getSharedPreferences(shared_name, context.MODE_PRIVATE); return sp.getString(key, defaultValues); } public static void setString(Context context, String key, String Values) { sp = context.getSharedPreferences(shared_name, context.MODE_PRIVATE); sp.edit().putString(key, Values).commit(); }}
在UIUtils里面
public class UiUtils {//获取主题 public static int getAppTheme(Context ctx) {// 给他的默认值是1默认是白天模式 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;//默认白色 } }// 通过点击时给activity_theme不同的值 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; } }}
在MainActivity里面
public class MainActivity extends AppCompatActivity { private int theme = 0; @Override protected void onCreate(Bundle savedInstanceState) { //切换主题必须放在onCreate()之前 if (savedInstanceState == null) {// 如果么有 theme = UiUtils.getAppTheme(MainActivity.this); } else { theme = savedInstanceState.getInt("theme"); }// 可以设置主题的 方法 在oncreate之前调用 setTheme(theme); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }//点击按钮时实现白天和黑夜的切换并实现效果 public void Buttons (View view){ UiUtils.switchAppTheme(MainActivity.this); load(); }// 切换之间的动画 public void load() { Intent intent = getIntent(); overridePendingTransition(R.anim.in, R.anim.out);//进入动画 finish(); overridePendingTransition(R.anim.in, R.anim.out); startActivity(intent); } }
这样就简单实现了点击button按钮时对白天和黑夜的切换。
阅读全文
1 0
- 安卓中白天模式和夜间模式的切换
- 白天夜间模式的切换
- 白天夜间模式切换
- 白天夜间模式切换
- 夜间白天模式切换
- 白天夜间模式切换
- app白天夜间模式切换
- Android中白天模式与夜间模式的切换
- android 白天模式/夜间模式切换
- 白天夜间模式切换(2)
- 白天夜间模式切换(2)
- android设置白天模式和夜间模式
- 夜间白天切换模式以及沉浸式模式
- jquerydemo夜间模式,白天模式
- DKNightVersion 夜间模式/白天模式
- Android主题切换—夜间/白天模式探究
- 夜间模式的切换
- 夜间模式的切换
- 阿牛的EOF牛肉串
- 深拷贝、浅拷贝
- MongoDB 简练命令
- mybatis进阶
- ORACLE 去除多余的重复记录语句
- 安卓中白天模式和夜间模式的切换
- 使用snmp协议获取MIB的数据
- 常用正则表达式
- Map集合的四种遍历方式
- 4241: 历史研究
- sessionStorage.getItem("token");
- ubuntu中C++编译及调试方法
- jquery
- bzoj 3170: [Tjoi 2013]松鼠聚会 计算几何