slidingmenustyle侧拉和主题日夜切换
来源:互联网 发布:ubuntu atom 编辑:程序博客网 时间:2024/04/29 22:39
MainActivity类:侧拉
public class MainActivity extends AppCompatActivity { private SlidingMenu menu; private int theme = 0; private Button but; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //切换主题必须放在onCreate()之前 if (savedInstanceState == null) { theme = UiUtils.getAppTheme(MainActivity.this); } else { theme = savedInstanceState.getInt("theme"); } setTheme(theme); setContentView(R.layout.activity_main); ImageView im = (ImageView) findViewById(R.id.images); im.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { menu.toggle(); } }); Slidings(savedInstanceState); } private void Slidings(Bundle savedInstanceState) { menu = new SlidingMenu(this); menu.setMode(SlidingMenu.LEFT); //设置触摸的模式 /** * TOUCHMODE_FULLSCREEN装满屏幕 *TOUCHMODE_MARGIN 边缘 * TOUCHMODE_NONE 没有 */ menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); menu.setShadowWidthRes(R.dimen.shadow_width); //menu.setShadowDrawable(R.color.colorAccent); //设置滑动的菜单的宽度 menu.setBehindOffsetRes(R.dimen.slidingmenu_offset); // 设置渐入渐出效果的值 menu.setFadeDegree(0.35f); menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); //为侧滑菜单设置布局 View view = View.inflate(MainActivity.this, R.layout.lete_cela, null); but = (Button) view.findViewById(R.id.riye); but.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { UiUtils.switchAppTheme(MainActivity.this); reload(); } }); menu.setMenu(view); } public void reload() { Intent intent = getIntent(); overridePendingTransition(R.anim.activity_in, R.anim.activity_out);//进入动画 finish(); overridePendingTransition(R.anim.activity_in, R.anim.activity_out); startActivity(intent); }}lete_cela的布局:
<Button android:id="@+id/riye" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableLeft="@drawable/ye" android:text="夜间" />1:在 style中添加黑夜主题<!-- 白夜主题 --><style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- 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>2:添加到res目录下animactivity_out.xml
<alpha android:duration="0" android:fromAlpha="1.0" android:interpolator="@android:anim/decelerate_interpolator" android:toAlpha="0.0"></alpha>activity_in.xml<alpha android:duration="0" android:fromAlpha="0.0" android:interpolator="@android:anim/accelerate_interpolator" android:toAlpha="1.0"></alpha>3:创建Preferences和UiUtilsPreferences 类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(); }}UiUtils 类: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;//默认白色 } }//切换主题//当然也可以使用资源ID来进行标记 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; } }}
阅读全文
0 0
- slidingmenustyle侧拉和主题日夜切换
- 侧拉和第三方登陆,日夜
- 日夜模式切换
- 日夜切换两种模式
- 简单的日夜模式切换
- NotePad++ 切换主题和背景
- SlidingMenu以及日夜模式切换配置
- 安卓日夜模式的切换
- 开关按钮实现日夜模式切换
- 切换主题
- 主题切换
- 天气预报中下拉刷新和左右切换
- 萝拉的主题
- asp.net 2.0实现语言和主题的切换
- asp.net 2.0实现语言和主题的切换
- android主题方式定义Activity跳转和切换动画
- Theme切换(主题切换)
- Ext 主题切换
- Intellij IDEA 中使用 MyBatis-generator 自动生成 MyBatis 代码
- 一种新的移动APP保持登陆的实现机制介绍
- Kafka的producer案例,Kafka的consumer案例
- Nginx优化
- 如何正确理解api网关
- slidingmenustyle侧拉和主题日夜切换
- 数据库
- fatal error C1189: #error : "No Target Architecture"
- 单引号,双引号,三单引号,三双引号
- c++基础--面试总结
- conda相关操作与可能遇到的问题
- nginx之 nginx + tomcat + redis 负载均衡且session一致性
- 软件工程再继续
- 阿里云服务器安装workpress