2012-08-13 13 views

उत्तर

15

Android दस्तावेज़ से - protected void dispatchDraw (Canvas canvas):

ड्रा द्वारा कहा जाता है बच्चे विचारों आकर्षित करने के लिए। व्युत्पन्न कक्षाओं द्वारा इसे अपने बच्चों के खींचे जाने से ठीक पहले नियंत्रण प्राप्त करने के लिए ओवरराइड किया जा सकता है (लेकिन इसके अपने विचार के बाद)।

+0

क्यों प्रेषण (कैनवास कैनवास) ??? क्या हम इसके बजाय ड्रॉ (कैनवास कैनवास) का उपयोग कर सकते हैं ?? –

+4

वह जगह है जहां आपको अपना चित्र बनाना चाहिए, हां। 'ड्रा (कैनवास कैनवास) 'ड्राइंग शुरू करता है; 'ऑनड्रा (कैनवास कैनवास)' जहां ड्राइंग होता है; 'प्रेषण ड्रा (कैनवास कैनवास)' 'व्यू ग्रुप' के बच्चों को तैयार करने के लिए बताता है। – Eric

2

उदाहरण के लिए, ViewGroup रैखिक-, सापेक्ष-, FrameLayout-, AbsoluteLayout का अभिभावक है। 1

क्योंकि व्यू ग्रुप क्लास अमूर्त है, सीधे एक इंस्टेंस बनाना संभव नहीं है।
आप इस से 1 का उपयोग कर सकते, समारोह के साथ:

dispatchDraw(Canvas canvas) 

अज्ञात कारणों से, कक्षाएं 1

onDraw(Canvas canvas) 

साथ

dispatchDraw(Canvas canvas) 

में है ड्राइंग के साथ आकर्षित नहीं होता यह कक्षा 1, संभव है और यूआई बनाने के लिए मजेदार है।

यह इस तरह दिखेगा:

///// सार्वजनिक वर्ग MainActi MyLinearLayout फैली हुई है। सार्वजनिक MainActi (प्रसंग चोर ... सुपर (जारी है ...) MyLinearLayout LinearLayout

फैली

@Override संरक्षित शून्य dispatchDraw (कैनवास कैनवास) { canvas.drawColor (Color.YELLOW); ... ///

या आप छोड़ वापस

onDraw(Canvas canvas) 

MainActivity "देखें" में विस्तार या इस प्रकार का निर्वासन कक्षा में यह उल्लेख के साथ आकर्षित करने के लिए:

MyMelIsDrawing extends View 
    onDraw(Canvas canvas) 
     //now draw...