// 判断是否需要自动更新 boolean autoUpdate = mPref.getBoolean("auto_update", true); if (autoUpdate) { checkVerson(); } else { mHandler.sendEmptyMessageDelayed(CODE_ENTER_HOME, 2000);// 延时2秒后发送消息 } // 渐变的动画效果 AlphaAnimation anim = new AlphaAnimation(0.3f, 1f);//透明度从0.3到1 anim.setDuration(2000);//延迟时间是2秒 rlRoot.startAnimation(anim);//rlRoot是闪屏页xml的根布局
SettingActivity.java
package com.itheima52.mobilesafe.activity;import android.app.Activity;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import com.itheima52.mobilesafe.R;import com.itheima52.mobilesafe.view.SettingItemView;/** * 设置中心 */public class SettingActivity extends Activity { private SettingItemView sivUpdate;// 设置升级 private SharedPreferences mPref; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_setting); mPref = getSharedPreferences("config", MODE_PRIVATE); sivUpdate = (SettingItemView) findViewById(R.id.siv_update); // sivUpdate.setTitle("自动更新设置"); boolean autoUpdate = mPref.getBoolean("auto_update", true);//是否自动更新,true是默认值。 if (autoUpdate) { // sivUpdate.setDesc("自动更新已开启"); sivUpdate.setChecked(true); } else { // sivUpdate.setDesc("自动更新已关闭"); sivUpdate.setChecked(false); } sivUpdate.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 判断当前的勾选状态 if (sivUpdate.isChecked()) { // 设置不勾选 sivUpdate.setChecked(false); // sivUpdate.setDesc("自动更新已关闭"); // 更新是否自动更新 mPref.edit().putBoolean("auto_update", false).commit(); } else { sivUpdate.setChecked(true); // sivUpdate.setDesc("自动更新已开启"); // 更新是否自动更新 mPref.edit().putBoolean("auto_update", true).commit(); } } }); }}
activity_setting.xml
自定义控件SettingItemView.java
package com.itheima52.mobilesafe.view;import android.content.Context;import android.util.AttributeSet;import android.view.View;import android.widget.CheckBox;import android.widget.RelativeLayout;import android.widget.TextView;import com.itheima52.mobilesafe.R;/** * 设置中心的自定义组合控件 */public class SettingItemView extends RelativeLayout { //RelativeLayout是一个ViewGroup也就是一个View的容器。 //NAMESPACE是xmlns:itheima="http://schemas.android.com/apk/res/com.itheima52.mobilesafe"中itheima的位置。 private static final String NAMESPACE = "http://schemas.android.com/apk/res/com.itheima52.mobilesafe"; private TextView tvTitle; private TextView tvDesc; private CheckBox cbStatus; private String mTitle; private String mDescOn; private String mDescOff; //xml布局解析成java对象的时候有style走这个方法 public SettingItemView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); initView(); } //xml布局解析成java对象的时候有属性走这个方法 public SettingItemView(Context context, AttributeSet attrs) { super(context, attrs); mTitle = attrs.getAttributeValue(NAMESPACE, "title");// 根据属性名称,获取属性的值 mDescOn = attrs.getAttributeValue(NAMESPACE, "desc_on"); mDescOff = attrs.getAttributeValue(NAMESPACE, "desc_off"); initView(); int attributeCount = attrs.getAttributeCount(); for (int i = 0; i < attributeCount; i++) { String attributeName = attrs.getAttributeName(i); String attributeValue = attrs.getAttributeValue(i); System.out.println(attributeName + "=" + attributeValue); } } //不通过xml布局用代码new走这个方法 public SettingItemView(Context context) { super(context); initView(); } /** * 初始化布局 */ private void initView() { // 将自定义好的布局文件设置给当前的SettingItemView,this将成为view_setting_item的父容器,this是一个ViewGroup是一个view容器可以拥有子布局。 View.inflate(getContext(), R.layout.view_setting_item, this);//View里面用getContext()拿到context对象。 //view_setting_item.xml /**/ tvTitle = (TextView) findViewById(R.id.tv_title); tvDesc = (TextView) findViewById(R.id.tv_desc); cbStatus = (CheckBox) findViewById(R.id.cb_status); setTitle(mTitle);// 设置标题 } public void setTitle(String title) { tvTitle.setText(title); } public void setDesc(String desc) { tvDesc.setText(desc); } /** * 返回勾选状态 */ public boolean isChecked() { return cbStatus.isChecked(); } public void setChecked(boolean check) { cbStatus.setChecked(check); // 根据选择的状态,更新文本描述 if (check) { setDesc(mDescOn); } else { setDesc(mDescOff); } }} 触摸状态能不能获取焦点
本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/5095281.html,如需转载请自行联系原作者