这样看没办法看出效果,如果能做出动态图就好了,下次吧。

除了ToggleButton的自定义之外,用户配置的信息也是要保存起来的,每一次启动程序的时候要能保证使用的是之前的配置,而不是默认配置,在这里使用SharedPreferences是最好的选择了。

想要源码的猛戳这里:http://download.csdn.net/detail/wwj_748/5945829

布局文件:

/2013.08.14_ToggleButton_demo/res/layout/settings.xml

<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”

android:id="@+id/LinearLayout1"

android:layout_width=“match_parent”

android:layout_height=“match_parent”

android:background="@drawable/bg"

android:orientation=“vertical” >

<RelativeLayout

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

android:background="@drawable/banner_bg" >

<TextView

android:id="@+id/tv_Title"

android:layout_width=“wrap_content”

android:layout_height=“42dp”

android:layout_centerHorizontal=“true”

android:gravity=“center”

android:text=“设置”

android:textColor="#ffffff"

android:textSize=“22sp” />

<ScrollView

android:layout_width=“match_parent”

android:layout_height=“match_parent” >

<LinearLayout

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

android:orientation=“vertical” >

<LinearLayout

android:id="@+id/layout_AutoPlay"

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

android:background="@drawable/item_short_bg_selector"

android:gravity=“center_vertical” >

<TextView

android:id="@+id/tv_AutoPlay"

android:layout_width=“0dp”

android:layout_height=“wrap_content”

android:layout_marginLeft=“10dp”

android:layout_weight=“1”

android:focusable=“false”

android:singleLine=“true”

android:text=“自动播放”

android:textColor="#7a6f66"

android:textSize=“18sp” />

<RelativeLayout

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_marginRight=“10dp” >

<ToggleButton

android:id="@+id/toggle_AutoPlay"

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:background="@drawable/toggle_selector"

android:gravity=“left|center_vertical”

android:paddingLeft=“14dp”

android:paddingRight=“14dp”

android:textColor="#ffffff"

android:textOff=“OFF”

android:textOn=“ON” />

<ImageButton

android:id="@+id/toggleButton_AutoPlay"

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:lay

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

**开源项目:【qq.cn.hn/FTe】 **

out_alignRight="@+id/toggle_AutoPlay"

android:background="#00000000"

android:src="@drawable/progress_thumb_selector" />

<ImageView

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

android:scaleType=“fitXY”

android:src="@drawable/list_divider" />

<LinearLayout

android:id="@+id/layout_StartOnBoot"

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

android:background="@drawable/item_short_bg_selector"

android:gravity=“center_vertical” >

<TextView

android:id="@+id/tv_StartOnBoot"

android:layout_width=“0dp”

android:layout_height=“wrap_content”

android:layout_marginLeft=“10dp”

android:layout_weight=“1”

android:focusable=“false”

android:singleLine=“true”

android:text=“开机自启动”

android:textColor="#7a6f66"

android:textSize=“18sp” />

<RelativeLayout

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_marginRight=“10dp” >

<ToggleButton

android:id="@+id/toggle_StartOnBoot"

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:background="@drawable/toggle_selector"

android:gravity=“left|center_vertical”

android:paddingLeft=“14dp”

android:paddingRight=“14dp”

android:textColor="#ffffff"

android:textOff=“OFF”

android:textOn=“ON” />

<ImageButton

android:id="@+id/toggleButton_StartOnBoot"

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_alignRight="@+id/toggle_StartOnBoot"

android:background="#00000000"

android:src="@drawable/progress_thumb_selector" />

哪些selector文件的代码就不贴了,自己看源码吧

Activity文件

**/2013.08.14_ToggleButton_demo/src/com/wwj/toggle/Setting.java

**

package com.wwj.toggle;

import android.app.Activity;

import android.os.Bundle;

import android.view.Gravity;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.ImageButton;

import android.widget.LinearLayout;

import android.widget.RelativeLayout;

import android.widget.ToggleButton;

/**

  • 自定义ToggleButton的例子

  • @author wwj 2013年8月14

*/

public class Setting extends Activity {

private LinearLayout layout_AutoPlay;

private LinearLayout layout_StartOnBoot;

private ToggleButton toggle_AutoPlay;

private ToggleButton toggle_StartOnBoot;

private ImageButton toggleButton_AutoPlay;

private ImageButton toggleButton_StartOnBoot;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.settings);

// 找到控件

layout_AutoPlay = (LinearLayout) findViewById(R.id.layout_AutoPlay);

layout_StartOnBoot = (LinearLayout) findViewById(R.id.layout_StartOnBoot);

toggle_AutoPlay = (ToggleButton) findViewById(R.id.toggle_AutoPlay);

toggle_StartOnBoot = (ToggleButton) findViewById(R.id.toggle_StartOnBoot);

toggleButton_AutoPlay = (ImageButton) findViewById(R.id.toggleButton_AutoPlay);

toggleButton_StartOnBoot = (ImageButton) findViewById(R.id.toggleButton_StartOnBoot);

initViews();

setListeners();

}

private void initViews() {

// 是否自动播放,获取SharePerference保存的用户配置

boolean isAutoPlay = SettingUtils.get(this, SettingUtils.AUTO_PLAY,

false);

toggle_AutoPlay.setChecked(isAutoPlay);

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) toggleButton_AutoPlay

.getLayoutParams();

if (isAutoPlay) { // 如果是自动播放

// 调整位置

params.addRule(RelativeLayout.ALIGN_RIGHT, -1);

params.addRule(RelativeLayout.ALIGN_LEFT,

R.id.toggleButton_AutoPlay);

toggleButton_AutoPlay.setLayoutParams(params);

toggleButton_AutoPlay

.setImageResource(R.drawable.progress_thumb_selector);

toggle_AutoPlay.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL);

} else {

// 调整位置

params.addRule(RelativeLayout.ALIGN_RIGHT, R.id.toggle_AutoPlay);

params.addRule(RelativeLayout.ALIGN_LEFT, -1);

toggleButton_AutoPlay.setLayoutParams(params);

toggleButton_AutoPlay

.setImageResource(R.drawable.progress_thumb_off_selector);

toggle_AutoPlay.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL);

}

boolean isAutostart = SettingUtils.get(this,

SettingUtils.IS_AUTO_START, true);

toggle_StartOnBoot.setChecked(isAutostart);

RelativeLayout.LayoutParams params3 = (RelativeLayout.LayoutParams) toggleButton_StartOnBoot

.getLayoutParams();

if (isAutostart) {

// 调整位置

params3.addRule(RelativeLayout.ALIGN_RIGHT, -1);

params3.addRule(RelativeLayout.ALIGN_LEFT, R.id.toggle_StartOnBoot);

toggleButton_StartOnBoot.setLayoutParams(params3);

toggleButton_StartOnBoot

.setImageResource(R.drawable.progress_thumb_selector);

toggle_StartOnBoot.setGravity(Gravity.RIGHT

| Gravity.CENTER_VERTICAL);

} else {

// 调整位置

params3.addRule(RelativeLayout.ALIGN_RIGHT, R.id.toggle_StartOnBoot);

params3.addRule(RelativeLayout.ALIGN_LEFT, -1);

toggleButton_StartOnBoot.setLayoutParams(params3);

toggleButton_StartOnBoot

.setImageResource(R.drawable.progress_thumb_off_selector);

toggle_StartOnBoot.setGravity(Gravity.LEFT

| Gravity.CENTER_VERTICAL);

}

}

private void setListeners() {

toggle_AutoPlay.setOnCheckedChangeListener(new ToggleListener(this,

“自动播放”, toggle_AutoPlay, toggleButton_AutoPlay));

toggle_StartOnBoot.setOnCheckedChangeListener(new ToggleListener(this,

“开机自启动”, toggle_StartOnBoot, toggleButton_StartOnBoot));

// UI事件,按钮点击事件

OnClickListener clickToToggleListener = new OnClickListener() {

@Override

public void onClick(View v) {

toggle_AutoPlay.toggle();

}

};

toggleButton_AutoPlay.setOnClickListener(clickToToggleListener);

layout_AutoPlay.setOnClickListener(clickToToggleListener);

// UI事件,按钮点击事件

写在最后

很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从哪里入手去学习,对此我整理了一些资料

如果你熟练掌握以下列出的知识点,相信将会大大增加你通过前两轮技术面试的几率!这些内容都供大家参考,互相学习。

①「Android面试真题解析大全」PDF完整高清版+②「Android面试知识体系」学习思维导图压缩包,最后觉得有帮助、有需要的朋友可以点个赞

blic void onClick(View v) {

toggle_AutoPlay.toggle();

}

};

toggleButton_AutoPlay.setOnClickListener(clickToToggleListener);

layout_AutoPlay.setOnClickListener(clickToToggleListener);

// UI事件,按钮点击事件

写在最后

很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从哪里入手去学习,对此我整理了一些资料

如果你熟练掌握以下列出的知识点,相信将会大大增加你通过前两轮技术面试的几率!这些内容都供大家参考,互相学习。

①「Android面试真题解析大全」PDF完整高清版+②「Android面试知识体系」学习思维导图压缩包,最后觉得有帮助、有需要的朋友可以点个赞

[外链图片转存中…(img-u3j0noUE-1641557984323)]

[外链图片转存中…(img-tSCg08Sd-1641557984324)]

[外链图片转存中…(img-YxTndP6w-1641557984325)]

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

Android记录4--自定义ToggleButton+用SharedPreferences保存用户配置相关推荐

  1. Android 自定义ToggleButton+用SharedPreferences保存用户配置

    布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:i ...

  2. Android学习笔记---16_采用SharedPreferences保存用户偏好设置参数

    16_采用SharedPreferences保存用户偏好设置参数 Android学习笔记---16_采用SharedPreferences保存用户偏好设置参数 2013-03-08 16_采用Shar ...

  3. Android基础入门教程——6.2 数据存储与访问之——SharedPreferences保存用户偏好参数

    Android基础入门教程--6.2 数据存储与访问之--SharedPreferences保存用户偏好参数 标签(空格分隔): Android基础入门教程 本节引言: 本节给大家介绍的是第二种存储用 ...

  4. android 屏幕关闭 eofexception,android EOFException异常解决办法 (SharedPreferences保存对象)...

    SharePreferences可以保存String 但是不能保存对象 这不符合面向对象. 为此可以通过序列化和反序列化将Serializable对象和字符串相互转化 所以可以将Serizlizabl ...

  5. 实例教程五:采用SharedPreferences保存用户偏好设置参数

    android水管工人游戏源码 http://www.eoeandroid.com/thread-207446-1-1.html Android推箱子小游戏 http://www.eoeandroid ...

  6. android 使用SharedPreferences保存对象

    今天,简单讲讲Android如何使用SharedPreferences保存对象. 记得之前写过一遍博客关于android如何使用SharedPreferences保存List<String> ...

  7. android SharedPreferences实现用户的注册和保存账号密码

    在android开发中,我们做用户登录和注册的时候需要将用户名和密码保存,下次打开的时候记住应户名和密码.关于注册保存用户密码的方式和记住用户名和密码的保存方式有多种,这里介绍SharaedPrefe ...

  8. android SharedPreferences保存list数据

    今天,简单讲讲如何使用  SharedPreferences保存list数据. 网上找了很多资料,还是觉得这种比较简单.直接上代码: 保存: public static boolean saveA ...

  9. android 偏好设置,SharedPreferences保存、显示用户偏好设置

    例如要保存用户的姓名和年龄两个参数,如下图布局 1.在strings.xml文件中声明要使用到的字符串 2.在布局文件中添加,,控件,实现上图的布局 android:layout_width=&quo ...

最新文章

  1. 【CCD图像检测】0:开篇总述
  2. 为什么叫python编程-python为什么叫爬虫
  3. FPGA在各行业的应用分析
  4. SpringMVC基础配置与简单的SpringMVC的程序
  5. 操作系统中的同步和异步
  6. python 【第一篇】基础数据类型
  7. 计算机教师专业发展规划,信息技术教师成长规划_信息技术教师专业成长浅谈...
  8. 【Python笔记】字符串常见操作
  9. 腾讯荣升Linux基金会白金会员助力支持开源社区
  10. linux下select,poll,epoll的使用与重点分析
  11. 判断 wp 是否是活跃页面
  12. 2月20日 梯度下降、三种方式、三种超参数学习率冲量衰减因子、应用举例
  13. Pycharm配置Git教程
  14. idea 远程调试resin
  15. [强化学习实战]深度Q学习-DQN算法原理
  16. java 记牌_JAVA入门之简易扑克牌游戏
  17. 笔记——衡量回归算法的标准最好的评价指标R Square
  18. 七个技巧!Godaddy域名安全指数提高N倍
  19. 今年天猫双11的这些技术,可能会改变整个零售行业
  20. 阿里巴巴高级技术专家 至简 聊工程师思维(配音版)

热门文章

  1. golang各种int最大值
  2. 橄榄山建立的Revit二次开发2群317179938,专门讨论Revit和BIM二次开发问题
  3. 知乎香港上市,首家以双重主要上市回港的中概股
  4. windows XP下忘记管理员密码的非常有效的解决办法
  5. 最快速的编程学习方法究竟是什么?
  6. Java堆是什么意思?Java堆具有哪些好处?
  7. 微信小程序 uniapp校园餐饮点单配送系统商家 配送员
  8. java.sql.SQLException: java.lang.RuntimeException: serious problem
  9. SAP--SD2-后台基础配置笔记
  10. 智能湖仓架构实践:利用 Amazon Redshift 的流式摄取构建实时数仓