博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个简单的android自定义view(Switch Button for api < 14)
阅读量:6533 次
发布时间:2019-06-24

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

hot3.png

1.编写主类

package com.sample.button;import android.content.Context;import android.content.res.TypedArray;import android.graphics.drawable.Drawable;import android.util.AttributeSet;import android.util.Log;import android.widget.CompoundButton;import com.example.buttonsample.R;public class MyButton extends CompoundButton {	public MyButton(Context context, AttributeSet attrs, int defStyle) {		super(context, attrs, defStyle);	}	private Drawable imgOFF;	private Drawable imgON;	public MyButton(Context context, AttributeSet attrs) {		super(context, attrs);		TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.MyButton, 0, 0);		try {			imgOFF = a.getDrawable(R.styleable.MyButton_imgOFF);			imgON = a.getDrawable(R.styleable.MyButton_imgON);		} catch (Exception e) {			e.printStackTrace();		}		a.recycle();	}	public MyButton(Context context) {		super(context);	}	@Override	public void setChecked(boolean checked) {		super.setChecked(checked);		udpateDrawable();	}	private void udpateDrawable() {		if (this.isChecked()) {			Log.e(MyButton.class.getName(),"changing to imgON");			this.setBackgroundDrawable(imgON);		} else {			Log.e(MyButton.class.getName(),"changing to imgOFF");			this.setBackgroundDrawable(imgOFF);		}	}	@Override	protected void onFinishInflate() {		udpateDrawable();		super.onFinishInflate();	}}

2.编写attrs定义文件(res/values/attrs.xml)

3.涉及到的2个图片资源如下

res/drawable/off.png

res/drawable/on.png

4.测试用activity的layout文件

5.实际效果即:

点击按钮时,按钮会在以下2个图片之间切换.

转载于:https://my.oschina.net/u/560844/blog/349395

你可能感兴趣的文章
Linux MySQL 储存中文失败简单解决办法
查看>>
求最大值及其下标
查看>>
洛谷——P1330 封锁阳光大学
查看>>
css选择器
查看>>
zabbix-agent配置文件说明
查看>>
linux系统配置之bash shell的配置(centos)
查看>>
linux C 9*9
查看>>
hdu 1695: GCD 【莫比乌斯反演】
查看>>
python的string操作总结
查看>>
如何把word中的图片怎么导出来呢?
查看>>
CMD指令大全
查看>>
十五天精通WCF——第二天 告别烦恼的config配置
查看>>
Qt多线程学习:创建多线程
查看>>
设计模式学习---UML常见关系的实现
查看>>
图解openssl实现私有CA
查看>>
BZOJ2213 : [Poi2011]Difference
查看>>
c++ Constructor FAQ 继续
查看>>
事务之六:spring 嵌套事务
查看>>
C#:路径
查看>>
js表单计算金额问题
查看>>