在现实的APP中,我们经常可以看见一种Button控件是左右滑动式的,就像是在IPhone中的一样,但是在基本的控件中是没有这样的Button的,这使得我们要使用它就必须自己进行编写。我参考了网上的一些关于滑动开关的源码,最终完成了这个项目。下面上代码。
MainActivity.java
package com.whisker.slidebutton;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import com.whisker.slidebutton.SlideButton.OnChangedListener;
public class MainActivity extends Activity {
private SlideButton slideButton = null;
private TextView textView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
slideButton = (SlideButton)findViewById(R.id.slidebutton);
textView = (TextView)findViewById(R.id.slideButtonTextView);
slideButton.set(true);
slideButton.setOnChangedListener(new OnChangedListener()
{
public void OnChanged(boolean CheckState)
{
textView.setText(CheckState ? "True" : "False");
}
});
}
}
下面是关键的SlideButton类,它继承了OnTouchListener这个类,实现了左右滑动的控制。
SlideButton.java
package com.whisker.slidebutton;
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 a