2014-11-21 11 views
20

मैं लॉलीपॉप (एपीआई 21) के लिए एक ऐप विकसित कर रहा हूं।लॉलीपॉप दृश्यों के लिए लहर प्रभाव

जब मैं Button रंग को कुछ बदलता हूं, तो लहर प्रभाव काम नहीं करता है।

मुझे लहर प्रभाव के लिए कुछ तीसरे पक्ष के पुस्तकालय मिले, लेकिन मैं मानक API के साथ ऐसा करना चाहता हूं।

यह answer या तो मदद नहीं करता था।

एक्सएमएल:

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="New Button" 
    android:id="@+id/button" 
    android:layout_below="@+id/textView" 
    android:background="@android:color/holo_blue_bright" 
    android:layout_alignParentStart="true" 
    android:layout_marginTop="76dp" 
    /> 

उत्तर

30

आप एक RippleDrawable जो आप एक्सएमएल में परिभाषित कर सकते हैं करने के लिए अपने बटन की पृष्ठभूमि सेट करना होगा। (मैं इसे holo_blue_ripple.xml नाम करेंगे)

<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="@android:color/white"> <!-- ripple color --> 

    <item android:drawable="@android:color/holo_blue_bright"/> <!-- normal color --> 

</ripple> 

फिर android:background="@drawable/holo_blue_ripple" साथ इसे संदर्भ।

+1

मदद के लिए धन्यवाद। लेकिन मैं सोच रहा था कि मैं इस तकनीक के साथ कोने त्रिज्या कैसे लागू कर सकता हूं? मैं 'holo_blue_ripple.xml' में निम्नलिखित लाइनों को शामिल किया है, लेकिन यह काम नहीं कर रहा: ' <आकार एंड्रॉयड: आकार = "आयत"> <कोनों एंड्रॉयड: त्रिज्या = "15dip" /> ' – zaingz

+3

मुझे समाधान मिला। यहां यह है: '<रिपल xmlns: android =" http://schemas.android.com/apk/res/android " एंड्रॉइड: रंग =" @ एंड्रॉइड: रंग/holo_blue_bright "> <आकार एंड्रॉयड: आकार = "आयत"> <कोनों एंड्रॉयड: त्रिज्या = "5dp" /> <आइटम एंड्रॉयड: drawable = "@ एंड्रॉयड: रंग/holo_blue_dark" /> ' – zaingz

+0

@zaingz यह soluti 9-पैच के लिए भी काम करते हैं? –

27

इस प्रयास करें:

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="?attr/selectableItemBackground" 
    ... 
/> 

पर this tutorial और the official docs

+1

जब तक आप अपने लहर प्रभाव को कस्टमाइज़ नहीं करना चाहते हैं, यह मेरी राय में सबसे आसान समाधान है। –

+1

@MateusGondim लेकिन आप बटन का रंग नहीं बदल सकते हैं ... –

+0

@joaquin हाँ, आप सही हैं। –

6

इसके अलावा ?attr/selectableItemBackgroundBorderless परिपत्र लहर प्रभाव के लिए इस्तेमाल किया canbe आधार पर।

+0

मेरे लिए काम नहीं करता है:/प्रभाव है- क्लिक होने पर रंग परिवर्तन। मेरा एंड्रॉइड संस्करण केवल 5.0 है। क्या आप सहायता कर सकते हैं? – UrviG

1

इस विशेषता

android:background="?attr/selectableItemBackground" 

यह वह जगह है सबसे आसान तरीका है आपके विचार/लेआउट में लहर प्रभाव दिखाने के लिए प्रयास करें।

+0

मेरे लिए काम नहीं करता है:/प्रभाव है- क्लिक करते समय रंग परिवर्तन। मेरा एंड्रॉइड संस्करण केवल 5.0 है। क्या आप सहायता कर सकते हैं? इसे एक बटन में जोड़ना – UrviG

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