博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android入门----Switch控件
阅读量:4290 次
发布时间:2019-05-27

本文共 1787 字,大约阅读时间需要 5 分钟。

    Switch是Android的一个开关控件,但是该控件是4.0以后才有得,故而有些项目需要的时候不得不自己去实现该控件功能,网上主要流行的方法是继承View等控件自己在onDraw()里面绘制控件,但是不是效果不太理想就是体验性太差,另外也有修改官方Switch控件的,个人觉得修改官方Switch控件比较靠谱,比较体验性方面性能方面都有保证

一 、使用Switch控件自带的开关效果

效果图:

 activity_main.xml中的代码:

MainActivity.java中的代码:

package com.test.switchdemo;import android.app.Activity;import android.app.ActionBar;import android.app.Fragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.CompoundButton;import android.widget.CompoundButton.OnCheckedChangeListener;import android.widget.Switch;import android.widget.Toast;import android.os.Build;public class MainActivity extends Activity {	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		Switch switch1 = (Switch) findViewById(R.id.switch1);		switch1.setOnCheckedChangeListener(new OnCheckedChangeListener() {			@Override			public void onCheckedChanged(CompoundButton buttonView,					boolean isChecked) {				// TODO Auto-generated method stub				if (buttonView.isChecked()) {					Toast.makeText(MainActivity.this,							"开始" + buttonView.getText().toString(),							Toast.LENGTH_LONG).show();				} else {					Toast.makeText(MainActivity.this,							"关闭" + buttonView.getText().toString(),							Toast.LENGTH_LONG).show();				}			}		});	}}

二、自定义Switch控件的开关效果

效果图:

 activity_main.xml中的代码:

增加了两个属性thumb和track,解释如下:
android:track:底部的图片
android:thumb:滑块的图片
drawable文件夹下面的thumb_selctor.xml中的代码:

drawable文件夹下面的track_selctor.xml中的代码:

MainActivity.java中的代码:同上

你可能感兴趣的文章
linux vmstat 1 ,watch , pmap -p,
查看>>
MYSQL 相关
查看>>
python 构建client 程序
查看>>
c++ 加载so动态库中的资源
查看>>
加解密 签名
查看>>
linux top 命令分析
查看>>
Linux vmstat命令详解
查看>>
linux pmap命令
查看>>
MySQL数据同步【双主热备】
查看>>
Mysql主从复制实践手册
查看>>
nginx配置正向代理支持HTTPS
查看>>
Perf -- Linux下的系统性能调优神器
查看>>
C++ 用libcurl库进行http通讯网络编程
查看>>
秒杀多线程第十篇 生产者消费者问题
查看>>
信号量与互斥锁
查看>>
linux 查看CPU个数,核数
查看>>
string 序列化
查看>>
va_start(),va_end()函数应用
查看>>
crontab命令
查看>>
State Threads——异步回调的线性实现
查看>>