自定义view 实现小圆点拖动

xiaoxiao2021-02-27  202

主界面:

public class MainActivity extends AppCompatActivity {     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         MyView myView = new MyView(this);     } }

view类:

public class MyView extends View {     private Paint paint;     private float X = 100;     private float Y = 100;     Rect rect = new Rect();     private boolean M=false;     public MyView(Context context) {         super(context);     }     public MyView(Context context, @Nullable AttributeSet att) {         super(context, att);         paint = new Paint();         paint.setColor(Color.RED);         paint.setAntiAlias(true);     }     @Override     protected void onDraw(Canvas canvas) {         super.onDraw(canvas);         canvas.drawCircle(X, Y, 100, paint);         rect.set((int) (X - 100), (int) (Y - 100), (int) (X + 100), (int) (Y + 100));     }     @Override     public boolean onTouchEvent(MotionEvent event) {         switch (event.getAction()){             case MotionEvent.ACTION_DOWN:                 float x1 = event.getX();                 float y1 = event.getY();                 if(x1 >rect.left && x1 <rect.right && y1>rect.top &&y1<rect.bottom){                     Toast.makeText(getContext(),"触摸事件的X值:"+x1,Toast.LENGTH_SHORT).show();                     M = true;                 }else {                     M = false;                 }                 break;             case MotionEvent.ACTION_MOVE:                 if(M){                     X = event.getX();                     Y = event.getY();                     invalidate();                 }                 break;         }         return true;     } }

布局文件:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app="http://schemas.android.com/apk/res-auto"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     tools:context="com.bwie.day_03.MainActivity"> <com.bwie.day_03.MyView     android:layout_width="match_parent"     android:layout_height="match_parent"     /> </LinearLayout>

转载请注明原文地址: https://www.6miu.com/read-15091.html

最新回复(0)