2012-05-03 15 views
7

क्या एंड्रॉइड में एक बटन को एनिमेट करने का कोई तरीका है ताकि जब आप इसे क्लिक करते हैं तो यह बटन की पृष्ठभूमि को दबाए गए चित्र में बदल देता है?क्लिक दृश्य दृश्य परिवर्तन पर बटन

मैं केवल फॉर्म बटन पर छवि दिखाने के लिए पृष्ठभूमि संपत्ति का उपयोग कर रहा हूं।

+3

इस अर्थ में एनिमेशन किसी भी वास्तविक "एनीमेशन" के बाद से भ्रामक है, लेकिन केवल राज्य परिवर्तन का प्रतिबिंब है। (मैं यह कह रहा हूं क्योंकि मैं वास्तव में एक बटन को एनिमेट करने की कोशिश कर रहा हूं और यह धागा बिल्कुल मदद नहीं करता है!) – styler1972

उत्तर

20

इस एक्सएमएल का उपयोग करें: इसे खींचने योग्य फ़ोल्डर में सहेजें और पृष्ठभूमि को खींचने योग्य के रूप में सेट करें।

<?xml version="1.0" encoding="utf-8" ?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="false" android:drawable="@drawable/category_listing_bg_img" /> 
<item android:state_pressed="true" android:drawable="@drawable/category_listing_bg_img_pressed" /> 
</selector> 
1

हां वहाँ है। टचलिस्टर पर लागू करें। MotionEvent चर का उपयोग (मान लीजिए कि घटना) onTouch विधि में यह लिख:

if (event.getAction() == MotionEvent.ACTION_DOWN){ 
    /*Code*/ 
} 
if (event.getAction() == MotionEvent.ACTION_UP){ 
    /*Code*/ 
} 
+0

क्या आपने सवाल पढ़ा है ?! – thepoosh

+0

केकेडी द्वारा पोस्ट की गई उपर्युक्त विधि का उपयोग भी किया जा सकता है और अच्छी तरह से काम करता है .. –

1

क्या आपको क्या करना चाहिए बनाने के एक selector (क्या Krishnakant दलाल के बारे में बात कर रहा था)। यह Handels कैसे यूआई तत्व की तरह हर एक राज्य में यह (प्रेस, विकलांग, सामान्य आदि)

यहाँ पढ़ चयनकर्ताओं के बारे में अधिक के लिए

हो सकता है दिखता है: http://android-journey.blogspot.com/2009/12/android-selectors.html

5

अपने रेस पर एक xml फ़ाइल जोड़ें/drawable फ़ोल्डर का नाम यह बटन_selector.xml दबाए गए राज्य के लिए दो ड्रॉइंग एक और दबाए गए या सामान्य स्थिति के लिए अन्य डाल दिया जाता है। अंत में इन दो को अपने एक्सएमएल फ़ाइल बटन चयनकर्ता जोड़ें और सबकुछ काम करना चाहिए !! @ mainable/bytton_selector.xml को अपने main.xml फ़ाइल पर अपने बटन की पृष्ठभूमि के रूप में सेट करना न भूलें।

<?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:drawable="@drawable/btn_pressed" android:state_pressed="true"/> 
     <item android:drawable="@drawable/btn_unpressed"/> 

    </selector> 
+0

यह काम करता है, लेकिन मैं जानना चाहता हूं कि एंड्रॉइड क्यों है: state_pressed = "false" की आवश्यकता नहीं है? मैंने इसके बिना परीक्षण किया, अभी भी काम कर रहा है ... दो राज्यों की जांच के बजाय प्रदर्शन बेहतर हो सकता है? – lynndragon

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