2015-05-31 10 views
8

एंड्रॉइड एल, https://developer.android.com/reference/android/graphics/drawable/RippleDrawable.html के लिए रिपलड्रावेबल का जिक्र करते हुए, दृश्य में लहर प्रभाव को शामिल करने के लिए मास्क करने का एक तरीका है। मास्किंग किया जाता है के रूप मेंरिपलड्राउबल मास्क रंग, इसके लिए क्या है?

<ripple android:color="#ff0000ff"> 
    <item android:drawable="@drawable/white" /> 
</ripple> 

हम यह भी का उपयोग कर

<ripple android:color="#ff0000ff"> 
    <item android:drawable="@drawable/black" /> 
</ripple> 

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

किसी को प्रसन्न करता है ... धन्यवाद!

उत्तर

6

अपने मुखौटे के लिए एक अपारदर्शी रंग का उपयोग करना - चाहे वह @android:color/white, #ff000000 है, या #ff123456 बात नहीं है - मतलब है कि आप एक पूरी तरह से अपारदर्शी आयत अपने drawable के रूप में एक ही आकार है कि के खिलाफ मास्किंग कर रहे हैं। यह लहरदार मास्क के लिए सबसे कुशल प्रतिपादन पथ है।

+0

धन्यवाद @alanv। मैंने # 00000000 भी कोशिश की, मास्किंग अभी भी काम करता है। मुखौटा प्रभाव पारदर्शी परिवर्तन पर अपारदर्शी प्रतीत नहीं होता है। – Elye

+0

यह तेज़ पथ (या, अधिक संभावना है, ColorDrawable.getOpacity() में एक बग हो सकता है। आप उस व्यवहार को किस संस्करण पर देख रहे हैं? क्या आपने एम पूर्वावलोकन की कोशिश की है? मान लीजिए कि आपके पास एक अलग '@android: id/mask' परत नहीं है, एक पारदर्शी सामग्री परत का उपयोग करके एक अदृश्य लहर होनी चाहिए क्योंकि यह एक खाली बिटमैप के खिलाफ मुखौटा है। – alanv

संबंधित मुद्दे