Мне бы хотелось узнать, как рисовать линию на ImageView, когда пользователь пробирает их пальцем?
Может ли это объяснить это тело? Или, возможно, любая ссылка, чтобы начать с этого.
Мне бы хотелось узнать, как рисовать линию на ImageView, когда пользователь пробирает их пальцем?
Может ли это объяснить это тело? Или, возможно, любая ссылка, чтобы начать с этого.
У вас должен быть свой собственный ImageView и переопределить функцию onDraw. Используйте что-то вроде этого
public class MyImageView extends ImageView{
    public MyImageView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Paint p = new Paint(Paint.ANTI_ALIAS_FLAG);
        canvas.drawLine(0, 0, 20, 20, p);
    }
}
и в вашем основном классе создайте объект MyImageView; и при касании вашего дисплея вызовите функцию update();
Это полный пример того, как вы можете нарисовать зеленый прямоугольник над другим изображением:
package CustomWidgets;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
/**
 * Allows to draw rectangle on ImageView.
 *
 * @author Maciej Nux Jaros
 */
public class DrawImageView extends ImageView {
    private Paint currentPaint;
    public boolean drawRect = false;
    public float left;
    public float top;
    public float right;
    public float bottom;
    public DrawImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
        currentPaint = new Paint();
        currentPaint.setDither(true);
        currentPaint.setColor(0xFF00CC00);  // alpha.r.g.b
        currentPaint.setStyle(Paint.Style.STROKE);
        currentPaint.setStrokeJoin(Paint.Join.ROUND);
        currentPaint.setStrokeCap(Paint.Cap.ROUND);
        currentPaint.setStrokeWidth(2);
    }
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        if (drawRect)
        {
            canvas.drawRect(left, top, right, bottom, currentPaint);
        }
    }
}
Если у вас это определено, вы можете заменить ImageView на вид сверху (виджет), например:
<CustomWidgets.DrawImageView
    android:id="@+id/widgetMap"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:src="@drawable/map_small"
/>
Затем вы можете использовать это, например, в событии касания активности, которая управляет компоновкой:
    mapImageView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            DrawImageView drawView = (DrawImageView) v;
            // set start coords
            if (event.getAction() == MotionEvent.ACTION_DOWN) {
                drawView.left = event.getX();
                drawView.top = event.getY();
            // set end coords
            } else {
                drawView.right = event.getX();
                drawView.bottom = event.getY();
            }
            // draw
            drawView.invalidate();
            drawView.drawRect = true;
            return true;
        }
    });
Конечно, вы могли бы сделать некоторые геттеры и сеттеры и другие надстройки Java over-engineering; -).
Для рисования линии, которую пользователь действительно нарисовал, вы должны переопределить dispatchTouchEvent. С этого события вы можете получить координаты линии и нарисовать их в onDraw, как показано george.
Взгляните на образец ApiDemos FingerPaint.
Используя это, вы можете нарисовать линию на ImageView, коснувшись экрана.