package com.pdj.bw.qiu;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
/**
* author:Created by WangZhiQiang on 2018/5/11.
*/
public class MyButtonView extends View implements View.OnClickListener {
private int qiX;
private int zhiX;
private Paint paint;
private Bitmap a;
private Bitmap b;
private Boolean isDrag = true;
private Boolean isClick = false;
private int x=0;
private int max;
private int stopx;
private int startx;
public MyButtonView(Context context) {
this(context,null);
}
public MyButtonView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs,0);
}
public MyButtonView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView();
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
setMeasuredDimension(a.getWidth(),a.getHeight());
}
@Override
protected void onDraw(final Canvas canvas) {
super.onDraw(canvas);
canvas.drawBitmap(a,0,0,paint);
canvas.drawBitmap(b,x,0,paint);
}
private void initView() {
paint = new Paint();
a = BitmapFactory.decodeResource(getResources(), R.drawable.a);
b = BitmapFactory.decodeResource(getResources(), R.drawable.b);
max = a.getWidth() - b.getWidth();
setOnClickListener(this);
}
@Override
public void onClick(View view) {
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
startx = (int) event.getX();
break;
case MotionEvent.ACTION_MOVE:
stopx = (int) event.getX();
x= stopx -b.getWidth()/2;
break;
case MotionEvent.ACTION_UP:
int zhi = (int) event.getX();
if(zhi-startx==0){
b();
}else {
if(zhi>a.getWidth()/2){
x=max;
}else {
x=0;
}
}
if(mOnChengListener!=null){
mOnChengListener.oncheng(isClick);
}
break;
}
a();
return true;
}
private void b(){
if(isClick){
x=0;
}else{
x = max;
}
isClick=!isClick;
invalidate();
}
private void a() {
if(x<0){
x=0;
}
if(x>max){
x=max;
}
invalidate();
}
public interface OnChangerListener{
void oncheng(Boolean isClick);
}
private OnChangerListener mOnChengListener;
public void setOnChengListener(OnChangerListener onChangerListener){
mOnChengListener=onChangerListener;
}
}
Android自定义组合view-购物车加减
最新推荐文章于 2023-11-08 16:05:34 发布