Android滑动实现开关

首先效果图:


然后是分别建立三个文件,第一个是main.class,第二个是SlipButton.class,第三个是onchangeListener.class

main.class

importAndroid.app.Activity;<wbr><wbr><br> import Android.os.Bundle;<wbr><wbr><br> importAndroid.widget.Toast;<wbr><wbr><br><wbr><wbr><br> public class Main extends Activity implements OnChangedListener{<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><br><wbr><wbr><wbr>@Override<wbr><wbr><br><wbr><wbr><wbr> public voidonCreate(Bundle savedInstanceState){<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>super.onCreate(savedInstanceState);<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>setContentView(R.layout.main);<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>SlipButton myBtn =(SlipButton)findViewById(R.id.slipBtn);//获得指定控件<wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>myBtn.SetOnChangedListener(this);//为控件设置监听器<wbr><wbr><wbr><br><wbr><wbr><wbr>}<wbr><wbr><br><wbr><wbr><br><wbr><wbr><wbr>@Override<wbr><wbr><br><wbr><wbr><wbr> public voidOnChanged(boolean CheckState){//当按钮状态被改变时<wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>// TODO Auto-generated methodstub<wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>if(CheckState)<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>Toast.makeText(this,"打开了..." ,Toast.LENGTH_SHORT).show();<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>else<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>Toast.makeText(this,"关闭了..." ,Toast.LENGTH_SHORT).show();<wbr><wbr><br><wbr><wbr><wbr>}<wbr><wbr><br> }<wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

SlipButton.class

importAndroid.content.Context;<wbr><wbr><br> importAndroid.graphics.Bitmap;<wbr><wbr><br> importAndroid.graphics.BitmapFactory;<wbr><wbr><br> importAndroid.graphics.Canvas;<wbr><wbr><br> importAndroid.graphics.Matrix;<wbr><wbr><br> importAndroid.graphics.Paint;<wbr><wbr><br> importAndroid.graphics.Rect;<wbr><wbr><br> importAndroid.util.AttributeSet;<wbr><wbr><br> importAndroid.view.MotionEvent;<wbr><wbr><br> import Android.view.View;<wbr><wbr><br> importAndroid.view.View.OnTouchListener;<wbr><wbr><br><wbr><wbr><br> public class SlipButton extends View implementsOnTouchListener{<wbr><wbr><br><wbr><wbr><br><wbr><wbr><wbr> privateboolean NowChoose =false;//记录当前按钮是否打开,true为打开,flase为关闭<wbr><wbr><wbr><br><wbr><wbr><wbr> privateboolean OnSlip =false;//记录用户是否在滑动的变量<wbr><wbr><wbr><br><wbr><wbr><wbr> privatefloatDownX,NowX;//按下时的x,当前的x,<wbr><wbr><wbr><br><wbr><wbr><wbr> private RectBtn_On,Btn_Off;//打开和关闭状态下,游标的Rect<wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><br><wbr><wbr><wbr> privateboolean isChgLsnOn =false;<wbr><wbr><br><wbr><wbr><wbr> privateOnChangedListener ChgLsn;<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><br><wbr><wbr><wbr> privateBitmapbg_on,bg_off,slip_btn;<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><br><wbr><wbr><wbr> publicSlipButton(Context context){<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>super(context);<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>// TODO Auto-generated constructorstub<wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>init();<wbr><wbr><br><wbr><wbr><wbr>}<wbr><wbr><br><wbr><wbr><br><wbr><wbr><wbr> publicSlipButton(Context context, AttributeSet attrs){<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>super(context, attrs);<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>// TODO Auto-generated constructorstub<wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>init();<wbr><wbr><br><wbr><wbr><wbr>}<wbr><wbr><br><wbr><wbr><br><wbr><wbr><wbr> private voidinit(){//初始化<wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>//载入图片资源<wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>bg_on = BitmapFactory.decodeResource(getResources(),R.drawable.slip_bg_on);<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>bg_off = BitmapFactory.decodeResource(getResources(),R.drawable.slip_bg_off);<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>slip_btn = BitmapFactory.decodeResource(getResources(),R.drawable.slip_btn);<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>//获得需要的Rect数据<wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>Btn_On = newRect(0,0,slip_btn.getWidth(),slip_btn.getHeight());<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr>Btn_Off = new Rect(<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值