2014-11-17 12 views
9

मैं रिपल ड्रायरेबल का सही तरीके से उपयोग करने के बारे में थोड़ा सा खो गया हूं।पारदर्शिता के बिना एक लहर को खींचने योग्य बनाएं

चलो कहते हैं कि मैं इस drawable करते हैं:

<?xml version="1.0" encoding="utf-8"?> 

<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:state_pressed="false" android:state_focused="true" android:drawable="@color/accent_color_light" /> 
    <item android:state_pressed="true" android:drawable="@color/accent_color_light" /> 
    <item android:drawable="@android:color/white" /> 
</selector> 

तो यह एक सादे सफेद पृष्ठभूमि जो जब यह ध्यान केंद्रित या दबाया जाता है एक हल्के नीले रंग में परिवर्तित हो जाता है।

मैं एक ही रंग कैसे प्राप्त कर सकता हूं लेकिन एक लहर प्रभाव के साथ? मुझे लगता है कि मुझे दृश्य की सीमाओं से बाहर निकलने से रोकने के लिए एक मुखौटा का उपयोग करने की आवश्यकता है?

उत्तर

21

अपने खुद के प्रश्न का उत्तर देने के लिए भूल गए।

<?xml version="1.0" encoding="utf-8"?> 
<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:exitFadeDuration="@android:integer/config_shortAnimTime" 
    android:color="@color/my_color" > 

    <item android:id="@android:id/mask"> 
     <shape android:shape="rectangle" > 
      <solid android:color="@android:color/holo_green_light" /> 
     </shape> 
    </item> 

</ripple> 

आईडी "मास्क" के साथ आइटम में रंग प्रदर्शित नहीं होता है। इसका उपयोग लहर प्रभाव के आकार और सीमाओं को बताने के लिए किया जाता है। इसके बिना, यह दृश्य की सीमाओं के बाहर जा सकता है।

+0

धन्यवाद आदमी! मुझे यहां बचाया-> http://stackoverflow.com/questions/43531552/how-do-i-change-the-solid-color-of-a-ripple-drawable#autocomment74148081 – reidisaki

19

RippleDrawable पहले से ही है एक StateListDrawable (यानी selector) - तो आप केवल अपनी पृष्ठभूमि के रूप में एक लहर drawable (एक डिफ़ॉल्ट राज्य के साथ) का उपयोग कर सकते हैं - कुछ इस तरह:

<?xml version="1.0" encoding="utf-8"?> 
<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="@color/accent_color_light"> 
    <item android:id="@android:id/mask"> 
     <color android:color="@android:color/white" /> 
    </item> 
    <item android:drawable="@android:color/white" /> 
</ripple> 

मुखौटा टुकड़ा लहर सीमा (और, हकीकत में, उपरोक्त स्निपेट, रंगों को घटाएं और अंतिम android:drawable जो गैर-दबाए गए पृष्ठभूमि को सेट करता है) default list selector लॉलीपॉप में उपयोग किया जाता है।

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