Android滑动实现开关
2017-12-06 19:51
375 查看
首先效果图:
然后是分别建立三个文件,第一个是main.class,第二个是SlipButton.class,第三个是 onchangeListener.class
main.class
import Android.app.Activity;
import Android.os.Bundle;
import Android.widget.Toast;
public class Main extends Activity implements OnChangedListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SlipButton myBtn =(SlipButton) findViewById(R.id.slipBtn);//获得指定控件
myBtn.SetOnChangedListener(this);//为控件设置监听器
}
@Override
public void OnChanged(boolean CheckState) {//当按钮状态被改变时
// TODO Auto-generated method stub
if(CheckState)
Toast.makeText(this,"打开了..." , Toast.LENGTH_SHORT).show();
else
Toast.makeText(this,"关闭了..." , Toast.LENGTH_SHORT).show();
}
}
SlipButton.class
import Android.content.Context;
import Android.graphics.Bitmap;
import Android.graphics.BitmapFactory;
import Android.graphics.Canvas;
import Android.graphics.Matrix;
import Android.graphics.Paint;
import Android.graphics.Rect;
import Android.util.AttributeSet;
import Android.view.MotionEvent;
import Android.view.View;
import Android.view.View.OnTouchListener;
public class SlipButton extends View implements OnTouchListener{
private boolean NowChoose = false;//记录当前按钮是否打开,true为打开,flase为关闭
private boolean OnSlip = false;//记录用户是否在滑动的变量
private float DownX,NowX;//按下时的x,当前的x,
private Rect Btn_On,Btn_Off;//打开和关闭状态下,游标的Rect
private boolean isChgLsnOn = false;
private OnChangedListener ChgLsn;
private Bitmap bg_on,bg_off,slip_btn;
public SlipButton(Context context) {
super(context);
// TODO Auto-generated constructor stub
init();
}
public SlipButton(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
init();
}
private void init(){//初始化
//载入图片资源
bg_on = BitmapFactory.decodeResource(getResources(), R.drawable.slip_bg_on);
bg_off = BitmapFactory.decodeResource(getResources(), R.drawable.slip_bg_off);
slip_btn = BitmapFactory.decodeResource(getResources(), R.drawable.slip_btn);
//获得需要的Rect数据
Btn_On = new Rect(0,0,slip_btn.getWidth(),slip_btn.getHeight());
Btn_Off = new Rect(
bg_off.getWidth()-slip_btn.getWidth(),
然后是分别建立三个文件,第一个是main.class,第二个是SlipButton.class,第三个是 onchangeListener.class
main.class
import Android.app.Activity;
import Android.os.Bundle;
import Android.widget.Toast;
public class Main extends Activity implements OnChangedListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SlipButton myBtn =(SlipButton) findViewById(R.id.slipBtn);//获得指定控件
myBtn.SetOnChangedListener(this);//为控件设置监听器
}
@Override
public void OnChanged(boolean CheckState) {//当按钮状态被改变时
// TODO Auto-generated method stub
if(CheckState)
Toast.makeText(this,"打开了..." , Toast.LENGTH_SHORT).show();
else
Toast.makeText(this,"关闭了..." , Toast.LENGTH_SHORT).show();
}
}
SlipButton.class
import Android.content.Context;
import Android.graphics.Bitmap;
import Android.graphics.BitmapFactory;
import Android.graphics.Canvas;
import Android.graphics.Matrix;
import Android.graphics.Paint;
import Android.graphics.Rect;
import Android.util.AttributeSet;
import Android.view.MotionEvent;
import Android.view.View;
import Android.view.View.OnTouchListener;
public class SlipButton extends View implements OnTouchListener{
private boolean NowChoose = false;//记录当前按钮是否打开,true为打开,flase为关闭
private boolean OnSlip = false;//记录用户是否在滑动的变量
private float DownX,NowX;//按下时的x,当前的x,
private Rect Btn_On,Btn_Off;//打开和关闭状态下,游标的Rect
private boolean isChgLsnOn = false;
private OnChangedListener ChgLsn;
private Bitmap bg_on,bg_off,slip_btn;
public SlipButton(Context context) {
super(context);
// TODO Auto-generated constructor stub
init();
}
public SlipButton(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
init();
}
private void init(){//初始化
//载入图片资源
bg_on = BitmapFactory.decodeResource(getResources(), R.drawable.slip_bg_on);
bg_off = BitmapFactory.decodeResource(getResources(), R.drawable.slip_bg_off);
slip_btn = BitmapFactory.decodeResource(getResources(), R.drawable.slip_btn);
//获得需要的Rect数据
Btn_On = new Rect(0,0,slip_btn.getWidth(),slip_btn.getHeight());
Btn_Off = new Rect(
bg_off.getWidth()-slip_btn.getWidth(),
相关文章推荐
- Android 三档自定义滑动开关,禁止点击功能的实现,用默认的seekbar组件实现
- 【Android】自己定义控件实现可滑动的开关(switch)
- Android编程实现可滑动的开关效果(附demo源码下载)
- android三档自定义滑动开关,禁止点击功能的实现,用默认的seekbar组件实现
- 【android开发】滑动按钮 SlipSwitch开关的实现
- Android自定义控件实现滑动开关效果
- 【Android】自定义控件实现可滑动的开关(switch)
- 【Android界面实现】自定义滑动开关控件的实现与使用
- Android自定义控件之实现滑动选择开关
- Android学习札记2:滑动开关的实现
- Android左右滑动控件实现开关的切换效果
- 【android开发】滑动按钮 SlipSwitch开关的实现
- android三档自定义滑动开关,禁止点击功能的实现,用默认的seekbar组件实现
- Android之实现滑动开关组件
- Android开发进阶自定义控件之滑动开关实现方法【附demo源码下载】
- 【android开发】滑动按钮 SlipSwitch开关的实现
- Android滑动实现开关
- android实现滑动开关
- android滑动开关自己实现
- android UI进阶之用gallery实现可滑动的Tab