转载请注明出处:王亟亟的大牛之路
继续这一系列的Material Design之行,昨天讲的是Sliders链接如下:http://blog.csdn.net/ddwhan0123/article/details/50586510
今天讲的是Switch,本来有考虑把它和CheckBox一起做了,但是毕竟实现不同,还是分开做吧,废话不多,开始正题
开关
On/off 开关切换单一设置选择的状态。开关控制的选项以及它的状态,应该明确的展示出来并且与内部的标签相一致。开关应该单选按钮呈现相同的视觉特性。
开关通过动画来传达被聚焦和被按下的状态。
开关滑块上标明 “on” 和 “off” 的做法被弃用,取而代之的是下图所示的开关。
当然,也有暗主题
他的好基友的介绍可以看:http://blog.csdn.net/ddwhan0123/article/details/50578348
原文地址:http://www.google.com/design/spec/components/switches.html
我们来贴下我们代码实现的效果:
包结构:
这边就说下Switch这个类,别的在之前文章里有。
private int backgroundColor = Color.parseColor("#4CAF50");
private Ball ball;
private boolean check = false;
private boolean eventCheck = false;
private boolean press = false;
private OnCheckListener onCheckListener;
private Bitmap bitmap;
28-37,一系列的变量声明。
public Switch(Context context, AttributeSet attrs) {
super(context, attrs);
setAttributes(attrs);
setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (check)
setChecked(false);
else
setChecked(true);
}
});
}
39-52行,构造函数,设置监听事件,根据是否被按来做相应初始化操作
protected void setAttributes(AttributeSet attrs) {
setBackgroundResource(R.drawable.background_transparent);
// Set size of view
setMinimumHeight(Utils.dpToPx(48, getResources()));
setMinimumWidth(Utils.dpToPx(80, getResources()));
// Set background Color
// Color by resource