user3540811
user3540811

Reputation: 51

Android - redraw canvas

I have 3 ImageViews. 1st and 2nd connected with red line. Also I have simple button. Here is a picture:

enter image description here

I want to connect 2nd & 3rd ImageViews with new Path line and change the first line color (for example to Green) when i clicking my button. Here is parts of my code:

public class SkillPath extends View {
Paint paint;
Path path;

... constructors


@Override
protected void onDraw(Canvas canvas) {
    addPath (canvas);       
}

//Here is my RED line
void addPath (Canvas canvas){
    paint.setAntiAlias(true);
    paint.setColor(Color.RED);
    paint.setStrokeWidth(3);

    path.moveTo(110, 110);
    path.lineTo(210, 110);

    canvas.drawPath(path, paint);
    Log.d ("Page 2","onDraw");
}

I can get all coordinates of all Views, but how can I redraw existing canvas? I suspect, I need to use invalidate(), but I do not know enough to do this. Need help.

Upvotes: 2

Views: 3601

Answers (1)

G.T.
G.T.

Reputation: 1557

The invalidate() method forces the View to be re-drawn.

So just apply the modification you need on your canvas and call invalidate() on the related View after these modifications.

Upvotes: 2

Related Questions