【发布时间】:2016-10-24 19:20:07
【问题描述】:
我想根据用户的需要在屏幕上绘制矩形,如何从用户触摸事件中获取绘制矩形的点?我已经使用 onTouchEvent 画线并绘制如下。像这样,根据用户的需要画线我想画矩形,但我无法得到这个值。请帮忙
public class SimpleDrawingView extends View {
private final int paintColor = Color.BLACK;
private Paint drawPaint;
private Path path = new Path();
float pointX;
float pointY;
public SimpleDrawingView(Context context, AttributeSet attrs) {
super(context, attrs);
setFocusable(true);
setFocusableInTouchMode(true);
setupPaint();
}
private void setupPaint() {
// Setup paint with color and stroke styles
drawPaint = new Paint();
drawPaint.setColor(paintColor);
drawPaint.setAntiAlias(true);
drawPaint.setStrokeWidth(5);
drawPaint.setStyle(Paint.Style.STROKE);
drawPaint.setStrokeJoin(Paint.Join.ROUND);
drawPaint.setStrokeCap(Paint.Cap.ROUND);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
pointX = event.getX();
pointY = event.getY();
// Checks for the event that occurs
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
path.moveTo(pointX, pointY);
return true;
case MotionEvent.ACTION_MOVE:
path.lineTo(pointX, pointY);
break;
default:
return false;
}
// Force a view to draw again
postInvalidate();
return true;
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawPath(path,drawPaint);
}
}
【问题讨论】:
-
您好,您在使用 Canvas 吗?
-
我想请你先把问题说清楚。您想通过编程或手指在屏幕上四舍五入来绘制矩形?
-
@android_softy 我想通过在屏幕上用四舍五入的手指来绘制矩形。谢谢你的支持。下面的答案解决了问题
标签: android touch drawing drawrectangle