2010-10-25 26 views
6

हाय सब: मैं टेक्स्टवीव से प्राप्त एक वर्ग लिख रहा हूं, और onDraw() विधि को ओवरराइड करता हूं, लेकिन विधि में, canvas.drawText() का मेरा आह्वान नहीं करता है काम करने लगता है, कोड नीचे जैसा है:मेरा कैनवास.drawText() का आक्रमण क्यों नहीं करता है

protected void onDraw(Canvas canvas) { 
    // super.onDraw(canvas); 
    Paint paint = new Paint(); 
    paint.setColor(android.graphics.Color.WHITE); 
    paint.setTextSize(20); 

    String text = "hello"; 
    canvas.drawText(text, 0, 0, paint); 
} 
+0

@ बेमेस, यह क्या करता है? यह ऊपरी बाएं कोने में हैलो खींचना चाहिए। क्या यह दुर्घटनाग्रस्त है? क्या यह कुछ नहीं करता है? क्या टेक्स्ट व्यू का मूल व्यवहार खत्म हो जाता है? आप लेआउट में ओवरराइड टेक्स्ट व्यू का उपयोग कैसे कर रहे हैं? –

+0

@ ग्रेग - मैंने कोड स्वरूपण को साफ़ कर दिया है, उपयोगकर्ता 486005 ने प्रश्न पूछा है –

उत्तर

18

यह कुछ भी नहीं खींच रहा है क्योंकि टेक्स्ट निर्देशांक नीचे बाईं ओर हैं। चूंकि आप 0,0 पर आकर्षित करने की कोशिश कर रहे हैं, यह स्क्रीन के ऊपर खींचा जाएगा।

के अंतिम पंक्ति से बदल कर देखें:

canvas.drawText(text, 0, 20, paint); 
+0

@ user486005 जब डिबगिंग के लिए शुरुआत में 100,100 जैसे ज्ञात बिंदु को आजमाने और आकर्षित करने के लिए सबसे अच्छा ड्राइंग परीक्षण करते हैं तो प्लेसमेंट के बारे में चिंता करें। आपको यह पता चल जाएगा कि इस दृष्टिकोण को लेकर स्क्रीन से टेक्स्ट इशारा कर रहा था। सिर्फ एक विचार। –

+3

क्यों दुनिया में निर्देशांक नीचे बाईं ओर से शुरू होगा? यह हमेशा शीर्ष बाएं रहा है! –

+0

कम से कम वे दस्तावेज में इस अंतर का उल्लेख कर सकते हैं! –

-1

बहुत बढ़िया चारों ओर सुझाव, बहुत अच्छा काम लोग वास्तव में। अगली बार हालांकि यह अच्छा होगा अगर आप किसी व्यक्ति को किसी टिप्पणी या किसी चीज़ से पूछें कि क्या उसे जवाब के रूप में पोस्ट करने से पहले पूरी तरह से स्पष्ट किया गया है या नहीं। क्या आप वास्तव में सोचते हैं कि दूसरा वह उस बिंदु पर पहुंचा जो काम नहीं कर रहा था, वह सीधे प्रयोग किए बिना स्टैक ओवरफ्लो पर आया था?

मेरे पास एक वैकल्पिक सुझाव है, जो कि काफी हद तक पर्याप्त प्रश्न पर आधारित है, न केवल उस हिस्से को जिसे बिना वास्तविक ज्ञान के उत्तर दिया जा सकता है।

मैं एक कैनवास पर आपके ड्राटेक्स्ट कॉल को आजमाने की अनुशंसा करता हूं जो टेक्स्टव्यू सबक्लास में नहीं है क्योंकि इस तरह से टेक्स्टव्यू में कोड की कई सौ पंक्तियों से इसे ओवरराइड नहीं किया जाएगा जो इसे खींचने योग्य स्थिति का प्रबंधन करता है।