लगता है हम कस्टम ListView
जो इसमें कुछ आयत बनाकर द्वारा onDraw()
विधि फैली करते हैं।विशिष्ट क्षेत्र में सूची आइटम टेक्स्ट रंग ओवरले कैसे करें?
class Listpicker extends ListView {
//..Some other methods here..//
@Override
protected void onDraw(android.graphics.Canvas canvas) {
super.onDraw(canvas);
canvas.drawBitmap(glassPickerBitmap, null, glassRect, semiTransparrentPaint);
}
}
बिटमैप तैयार कांच के कुछ प्रकार जो सूचीदृश्य और कुछ ऊंचाई की चौड़ाई के बराबर चौड़ाई के साथ आयत है प्रतिनिधित्व करते हैं। मैं क्या चाहता हूं जब सूची वस्तु इस आयताकार में स्क्रॉल करे, पाठ को चित्रित करने के लिए इस्तेमाल रंग (पृष्ठभूमि और आदि के साथ सभी आइटम नहीं) को किसी अन्य रंग में बदल दिया जाएगा। इसलिए, उदाहरण के लिए, जब सूची आइटम फिट बैठता है ताकि पाठ की केवल आधा ऊंचाई glassPickerBitmap
में फिट हो, सूची आइटम का बाहरी भाग अपने सामान्य रंगों में रहना चाहिए, और glassPickerBitmap
के अंदर जो भाग है उसका टेक्स्ट रंग बदलना चाहिए। सूची आइटम बिना किसी पृष्ठभूमि के सरल टेक्स्ट व्यू हैं।
यह कैसे प्राप्त किया जा सकता है? शायद ColorFilter
एस Paint
को सौंपा गया है? पर कहा? Listview
की onDraw()
विधि भी जब ListView
स्क्रॉल किया है कहा जाता है नहीं है ... यह अनुकूलित विचारों, उदाहरण के लिए अंदर किया जा सकता है, कि ListView
के आइटम हो जाएगा? या हो सकता है कि कुछ रंग/शेडर/पता न हो कि अन्य ओवरले का उपयोग यहां किया जा सकता है, लेकिन जहां?
संपादित करें (जोड़ा छवि उदाहरण):
यहाँ वास्तविक जीवन app से कुछ फसल के उदाहरण है। 2 ListView
एस हैं: बाईं ओर एक, दाईं तरफ के दूसरे। ग्लास ग्रेड आयताकार है। अब, बाएं सूची में "संयुक्त राज्य डॉलर" मुद्रा चयनित है। और मैं सही है कि रास्ते में ListView
स्क्रॉल कर रहा हूँ, कि चयन डालर और अफगानी के बीच कहीं है। अब, क्या मैं चाहता हूँ, कि छोड़ दिया ListView
में डालर मुद्रा (सटीक रंग बात नहीं है अब, मैं इसे कुछ सार्थक करने के लिए बाद में बदल जाएगा) और, एक ही समय में, के निचले हिस्से लाल रंग में तैयार किया जाएगा "संयुक्त राज्य डॉलर" और दाएं सूची दृश्य में "अफगान अफगानी" का शीर्ष भाग उसी लाल रंग में भी खींचा जाएगा।
यह रंग बदलते गतिशील तरीके से किया जाना चाहिए - रंग केवल पाठ का हिस्सा सूची के स्क्रॉलिंग के दौरान कांच आयत किया जा रहा है कि के लिए बदला जाना चाहिए।
* ठीक है, यूरो और डालर यहाँ विशेष नहीं मानक सियान रंग के साथ तैयार मुद्राओं कर रहे हैं। प्रश्न कम से कम सफेद रंग के साथ पाठ के बारे में है। लेकिन अगर साइयन रंग भी बदलना संभव होगा तो यह बहुत अच्छा होगा।
'View.setWillNotDraw' (बूलियन willNotDraw) मिलता है' 'ListView' में कहा जाता onDraw' चाहिए। चाहे वह आपको प्राप्त करने में सक्षम हो, जो आप चाहते हैं वह बहस योग्य है। हालांकि दिलचस्प सवाल है। – techiServices
@Prizoff क्या आप दो चित्र (एक नियमित आइटम में से एक और ग्लास के नीचे एक आइटम के अन्य) प्रदान कर सकते हैं? – eveliotc
@EvelioTarazona – Prizoff