1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| package com.example.test_01;
import java.util.Random;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
public class MainActivity extends Activity {
Button Transfert;
LinearLayout Img;
Canvas CnvG; //variable pour stocker le canvas du layout
private static Random random = new Random() ;
float Y = 1;
private class Dessin extends View {
public Dessin(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas Cnv) { //Cnv est le canvas local à la classe Dessin
super.onDraw(Cnv);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);;
paint.setColor(Color.GREEN);
paint.setStrokeWidth(3);
Y = 100*random.nextFloat();
Cnv.drawLine(0, 0, 200, Y, paint);
CnvG = Cnv; //Je récupère ce canvas
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Img = (LinearLayout)findViewById(R.id.image);
final Dessin MonImg = new Dessin(this);
Img.addView(MonImg);
Transfert = (Button)findViewById(R.id.button1);
Transfert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MonImg.onDraw(CnvG); //j'utilise ici le canvas récupéré
Img.draw(CnvG);
}
});
}
} |