2011-07-08 38 views
5

Tôi đã tạo một ứng dụng vẽ đơn giản mà tôi có thể vẽ các đường trên canvas. Bây giờ tôi muốn thêm các nút chọn màu khác nhau. Vấn đề tôi có bây giờ là nếu tôi nhấp vào nút màu và tiếp tục vẽ tất cả các đường vẽ trước đó cũng thay đổi màu của nó thành màu vừa được chọn.Vẽ bằng nhiều màu trong canvas

Tôi đã tìm thấy một số bài đăng trên diễn đàn về việc sử dụng danh sách sơn (hoặc đường dẫn) cho mục đích đó. tuy nhiên, tôi hoàn toàn không thể hiểu được giải pháp. Bất cứ ai có thể đăng một số mã của một ví dụ làm việc?

Cảm ơn bạn rất nhiều trước.

+0

Bạn có thể tạo ArrayList của đối tượng Sơn và có thể đặt màu của đường kẻ bằng cách khởi tạo đối tượng Sơn mới trên mỗi lần nhấp vào Nút. –

Trả lời

1

Hãy thử điều này, Tôi đã thực hiện nó và nó hoạt động Greate cho tôi.

public void onClick(View view){ 

     switch (view.getId()){ 
      case R.id.colorRedBtn: 

       //Toast.makeText(getApplicationContext(), "Red", Toast.LENGTH_SHORT).show(); 
       currentPaint = new Paint(); 
       currentPaint.setColor(0xFFFF0000); 
       currentPaint.setDither(true); 
       currentPaint.setStyle(Paint.Style.STROKE); 
       currentPaint.setStrokeJoin(Paint.Join.ROUND); 
       currentPaint.setStrokeCap(Paint.Cap.ROUND); 
       currentPaint.setStrokeWidth(3); 
       break; 
      case R.id.colorBlueBtn: 

       //Toast.makeText(getApplicationContext(), "Green", Toast.LENGTH_SHORT).show(); 
        currentPaint = new Paint(); 
       currentPaint.setColor(0xFF00FF00); 
       currentPaint.setDither(true); 
       currentPaint.setStyle(Paint.Style.STROKE); 
       currentPaint.setStrokeJoin(Paint.Join.ROUND); 
       currentPaint.setStrokeCap(Paint.Cap.ROUND); 
       currentPaint.setStrokeWidth(3); 
       break; 
      case R.id.colorGreenBtn: 

       //Toast.makeText(getApplicationContext(), "Blue", Toast.LENGTH_SHORT).show(); 
       currentPaint = new Paint(); 
       currentPaint.setColor(0xFF0000FF); 
       currentPaint.setDither(true); 
       currentPaint.setStyle(Paint.Style.STROKE); 
       currentPaint.setStrokeJoin(Paint.Join.ROUND); 
       currentPaint.setStrokeCap(Paint.Cap.ROUND); 
       currentPaint.setStrokeWidth(3); 

       break; 

      case R.id.colorBlackBtn: 

       //Toast.makeText(getApplicationContext(), "Black", Toast.LENGTH_SHORT).show(); 
       currentPaint = new Paint(); 
       currentPaint.setColor(0xFF000000); 
       currentPaint.setDither(true); 
       currentPaint.setStyle(Paint.Style.STROKE); 
       currentPaint.setStrokeJoin(Paint.Join.ROUND); 
       currentPaint.setStrokeCap(Paint.Cap.ROUND); 
       currentPaint.setStrokeWidth(3); 
       break; 
      } 
} 

Hy vọng điều này sẽ giúp bạn. Tận hưởng.

6
  1. Canvas
  2. Paint

    Paint bluePaint = new Paint(); 
    p1.setColor(Color.BLUE); 
    
    Paint greenPaint = new Paint(); 
    p2.setColor(Color.GREEN); 
    
    canvas.drawLine(1.0, 1.0, 2.0, 2.0, bluePaint); //blue line 
    canvas.drawLine(2.0, 1.0, 1.0, 2.0, greenPaint); //green line 
    
Các vấn đề liên quan