एंड्रॉइड में मैंने कुछ लेख पढ़े हैं कि कैसे ड्रॉबल्स स्थिर स्थिति साझा करते हैं। इसलिए यदि आप एक ड्रॉइंग में बदलाव करते हैं तो यह सभी बिटमैप्स को प्रभावित करता है। उदाहरण के लिए कहें कि आपके पास स्टार ड्रॉबल्स की एक सूची है। एक पर अल्फा बदलने से सभी स्टार ड्रॉबल्स अल्फा बदल जाएंगे। लेकिन आप किसी साझा स्थिति के साथ एक ड्रायबल की अपनी प्रति प्राप्त करने के लिए उत्परिवर्तन का उपयोग कर सकते हैं।एंड्रॉइड ड्रायरेबल - getConstantState.newDrawable() बनाम mutate()
क्या एंड्रॉयड में निम्नलिखित दो कॉल के बीच अंतर है::
Drawable clone = drawable.getConstantState().newDrawable();
// vs
Drawable clone = (Drawable) drawable.getDrawable().mutate();
मेरे लिए वे दोनों के रूप में एक drawable क्लोनिंग कर रहे हैं
लेख मैं पढ़ रहा था here
अब मेरे सवाल पर है वे दोनों एक ड्रॉबल लौटते हैं जिसमें कोई साझा राज्य नहीं है। क्या मैं कुछ भूल रहा हूँ ?
आप के साथ ध्यान देंगे 'mutate' कि' क्लोन == drawable' है ' TRUE'। – 4castle
मैं देखता हूं, इसलिए mutate सटीक समान ड्रॉबल है लेकिन साझा स्थिति के बिना। और drawable.getConstantState()। newDrawable(); वास्तव में स्मृति में एक नया खींचने योग्य है, सही? – j2emanue
यह सही है! – 4castle