2011-07-08 12 views
5

में एकाधिक रंगों के साथ चित्रण मैंने एक साधारण ड्राइंग ऐप बनाया जिसके साथ मैं कैनवास पर रेखाएं खींच सकता हूं। अब मैं विभिन्न रंग चयन बटन जोड़ना चाहता था। अब मेरे पास समस्या यह है कि यदि मैं कलर बटन पर क्लिक करता हूं और पिछली खींची गई रेखाओं को चित्रित करना जारी रखता हूं तो यह भी रंग बदलकर नए रंग में बदल जाता है।कैनवास

मुझे उस उद्देश्य के लिए एक पेंट (या पथ) सूची का उपयोग करने के बारे में कुछ फ़ोरम पोस्ट मिले। हालांकि, मैं समाधान को पूरी तरह समझ नहीं पाया। क्या कोई कामकाजी उदाहरण के कुछ कोड पोस्ट कर सकता है?

अग्रिम में बहुत बहुत धन्यवाद।

+0

आप पेंट ऑब्जेक्ट्स के ऐरेलिस्ट बना सकते हैं और प्रत्येक बटन क्लिक पर नई पेंट ऑब्जेक्ट को प्रारंभ करके लाइनों का रंग सेट कर सकते हैं। –

उत्तर

1

इस प्रयास करें, मैं इसे किया है और यह मेरे लिए greate काम करता है।

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; 
      } 
} 

आशा है कि यह आपकी मदद करेगा। आनंद लें।

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