Хорошо, я пытаюсь создать программу, которая использует linedrawview. Когда пользователь начинает событие touch (действие DOWN), он получает текущие x и y и сохраняет их в переменных. Затем, когда пользователь тянет их пальцем, линия рисуется и оживляется резинкой. Наконец, когда пользователь отпускает (действие UP), линия создается. У меня с этим много хлопот и мне нужна помощь. Мой код до сих пор для LineDrawView.java:Нарисуйте линию резиновой ленты с помощью ontouchevent
// Project: Java2LineDrawEx
// File: LineDrawView.java
// Date: 4/9/13
// Author: Joshua Lefelhocz
// Description: custom view to draw lines on
package com.lcc.java2lab11lefelhocz;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.MotionEvent;
import android.view.View;
// Notice this class extends View
public class LineDrawView extends View
{
// This view's bounds
private int xMin = 0;
private int xMax;
private int yMin = 0;
private int yMax;
private float currentX;
private float currentY;
// Paint object
private Paint paintFill;
// constructor
public LineDrawView(Context context)
{
// call the super class constructor
super(context);
// The Paint class holds the style and color information about how to draw geometries, text and bitmaps.
// For efficiency create the paint objects in the constructor, not in draw
// paint.setStrokeWidth(10); // works on lines
// You can change the color of Paint without effecting objects already drawn
// You can NOT change the style of Paint without effecting objects already drawn
// The Style, TextSize apply to all objects drawn with the paint.
// Create a default Paint object Style=Fill
paintFill = new Paint();
// set the background color when the view is created
this.setBackgroundColor(Color.LTGRAY);
}
// Called to draw the view. Also called by invalidate().
@Override
protected void onDraw(Canvas canvas)
{
// canvas.drawColor(Color.LTGRAY); // this works in onDraw to set the background color
// Draw a Red Diagonal line from upper left corner to bottom right corner
paintFill.setColor(Color.RED);
canvas.drawLine(xMin, yMin, xMax, yMax, paintFill);
// draw a blue line 10 pixels wide horizontal across the center.
paintFill.setColor(Color.BLUE);
paintFill.setStrokeWidth(10);
canvas.drawLine(xMin, yMax/2, xMax, yMax/2, paintFill);
// draw a yellow line 20 pixels wide vertical across the center.
paintFill.setColor(Color.YELLOW);
paintFill.setStrokeWidth(20);
canvas.drawLine(xMax/2, yMin, xMax/2, yMax, paintFill);
}
// Called when the view is first created or its size changes.
@Override
public void onSizeChanged(int width, int height, int oldWidth, int oldHeight)
{
// Set the view bounds
xMax = width-1;
yMax = height-1;
}
public boolean onTouchEvent(MotionEvent event)
{
currentX = event.getX();
currentY = event.getY();
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN:
float startX = currentX;
float startY = currentY;
case MotionEvent.ACTION_MOVE:
float endX =
case MotionEvent.ACTION_UP:
return super.onTouchEvent(event);
}
return super.onTouchEvent(event);
}
}