xandroid Posté(e) 8 avril 2012 Share Posté(e) 8 avril 2012 bonjour a tous , mon probleme est que a chaque fois que je choisie une couleur tous les ecriture sur l'ecran modifier de meme couleur .je veut que si je choisie une autre couleur les couleurs de graphics precedent ne soit pas modifier . merci public class Dessineretcolorer extends Activity{ private Paint paint= new Paint(); private Path path= new Path(); int tool; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new graph(this,null)); } @Override public boolean onCreateOptionsMenu(Menu menu) { SubMenu m =menu.addSubMenu(0, 0, 0, "crayons"); m.setIcon(R.drawable.jaune); m.setHeaderIcon(R.drawable.jaune); m.add(0, 1, 0, "noir"); m.add(0, 2, 0, "bleu"); m.add(0, 3, 0, "rouge"); m.add(0, 4, 0, "vert"); m.add(0, 5, 0, "effacer l'ecran"); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case 1: paint.setColor(Color.BLACK); break; case 2: paint.setColor(Color.BLUE); path.set(path); break; case 3: paint.setColor(Color.RED); path.set(path); break; case 4: paint.setColor(Color.GREEN); path.set(path); break; case 5: paint.setColor(Color.WHITE); break; } return super.onOptionsItemSelected(item); } public class graph extends View { public graph(Context context, AttributeSet attrs) { super(context, attrs); paint.setAntiAlias(true); paint.setStrokeWidth(2f); paint.setColor(Color.BLACK); paint.setStyle(Paint.Style.STROKE); paint.setStrokeJoin(Paint.Join.BEVEL); } @Override protected void onDraw(Canvas c) { c.drawColor(Color.WHITE); c.drawPath(path, paint); c.drawText("couleur vert",70, 80, paint); c.drawCircle(150, 150,50 , paint); c.drawText("couleur bleu",200, 200, paint); c.drawCircle(300, 300,50 , paint); c.drawText("couleur rouge",350, 400, paint); c.drawRect(100,350,400,400, paint); } public boolean onTouchEvent(MotionEvent event) { float eventX = event.getX(); float eventY = event.getY(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: path.moveTo(eventX, eventY); return true; case MotionEvent.ACTION_MOVE: path.lineTo(eventX, eventY); break; case MotionEvent.ACTION_UP: break; default: return false; } // Schedules a repaint. invalidate(); return true; } } } j'ai besoin de votre aide svp Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 7 mai 2012 Share Posté(e) 7 mai 2012 Et bien en fait tu utilises le meme objet Paint pour tout, donc [color=red]qd[/color] tu vas lui donner une nouvelle couleur et que l'écran va se rafraichir (c'est a dire redessiner tout ce qu'il y a a l'ecran, il va regarder la couleur ds Paint et redessiner avec cette couleur... donc il faut que tu ais un objet Paint pour chaque couleur ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.