在Android中,可以通过自定义View来实现点击某物后绘制任意尺寸的矩形。以下是一个实现的示例:
public class CustomView extends View {
private Paint paint;
private Rect rect;
public CustomView(Context context) {
super(context);
init();
}
public CustomView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init();
}
private void init() {
paint = new Paint();
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.FILL);
rect = new Rect();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawRect(rect, paint);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
// 获取点击位置的坐标
int x = (int) event.getX();
int y = (int) event.getY();
// 设置矩形的位置和尺寸
rect.left = x - 100; // 矩形左边距离点击位置左边100个像素
rect.top = y - 100; // 矩形上边距离点击位置上边100个像素
rect.right = x + 100; // 矩形右边距离点击位置右边100个像素
rect.bottom = y + 100; // 矩形下边距离点击位置下边100个像素
// 重绘View
invalidate();
}
return true;
}
}
<LinearLayout 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"
android:orientation="vertical"
tools:context=".MainActivity">
<com.example.myapplication.CustomView
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
在上述示例中,我们创建了一个CustomView类,重写了onDraw方法,在onTouchEvent方法中处理点击事件。当用户点击屏幕时,会获取点击位置的坐标,并根据坐标设置矩形的位置和尺寸,然后调用invalidate方法触发重绘,从而在屏幕上绘制出指定尺寸的矩形。
推荐的腾讯云相关产品:无
参考链接:无
领取专属 10元无门槛券
手把手带您无忧上云