【发布时间】:2018-10-02 13:30:14
【问题描述】:
我正在尝试制作一些视图,允许用户将某些元素与画线连接起来。
例如在图像上有几个TextViews,用户从一个到另一个画线,如果它连接正确(text1到text3),线将保留。
现在我已经实现了自定义视图,它画线,跟随你的手指:
public class FingerLineView extends View {
private final Paint mPaint;
private float startX;
private float startY;
private float endX;
private float endY;
public FingerLineView(Context context) {
this(context, null);
}
public FingerLineView(Context context, AttributeSet attrs) {
super(context, attrs);
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mPaint.setStyle(Style.STROKE);
mPaint.setColor(Color.RED);
}
@Override protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawLine(startX, startY, endX, endY, mPaint);
}
@Override
public boolean onTouchEvent(@NonNull MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
startX = event.getX();
startY = event.getY();
// Set the end to prevent initial jump
endX = event.getX();
endY = event.getY();
invalidate();
break;
case MotionEvent.ACTION_MOVE:
endX = event.getX();
endY = event.getY();
invalidate();
break;
case MotionEvent.ACTION_UP:
endX = event.getX();
endY = event.getY();
invalidate();
break;
}
return true;
}
}
这就是它的工作原理:
但我不知道如何正确地将其与 TextView 等视图元素“连接”。
我应该使用完全自定义的视图还是有更好的方法来做到这一点?
【问题讨论】:
-
如果你要画一些线条,那么文字也应该画出来。可以检测文本视图的坐标并将线连接到 textView 本身,而是连接到您正在绘制的视图上正好位于其下方的一些不可见矩形
标签: android android-layout android-custom-view android-drawable