,可以通过以下步骤实现:
以下是一个示例代码:
public class CircleView extends View {
private float x, y; // 手指触摸的坐标
private boolean isTouching = false; // 是否正在触摸
public CircleView(Context context) {
super(context);
}
public CircleView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (isTouching) {
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(5);
canvas.drawCircle(x, y, 50, paint);
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
isTouching = true;
x = event.getX();
y = event.getY();
invalidate();
break;
case MotionEvent.ACTION_MOVE:
x = event.getX();
y = event.getY();
invalidate();
break;
case MotionEvent.ACTION_UP:
isTouching = false;
invalidate();
break;
}
return true;
}
}
在使用这个自定义View时,可以将其添加到布局文件中,并设置其宽高等属性。例如:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.example.CircleView
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
这样,当手指在该View上触摸时,就会在手指触摸的位置绘制一个红色的圆圈。
领取专属 10元无门槛券
手把手带您无忧上云