2010-04-16 13 views
7

बटन दिखाने के लिए कैसे इसे एंड्रॉइड में कस्टम पृष्ठभूमि छवि का उपयोग करके बटन के लिए क्लिक किया जाता है (इसे नीचे/कुछ परिवर्तन सेट करके) क्लिक किया जाता है। मैं अधिक छवियों को शामिल नहीं करना चाहता हूं और अलग-अलग राज्यों में अलग-अलग सेट करना चाहता हूं जैसे कि Google हैलो व्यू उदाहरण में दिखाया गया है। धन्यवाद।कस्टम पृष्ठभूमि छवि शो के साथ बटन कैसे बनाएं एंड्रॉइड में एनीमेशन पर क्लिक करें

+0

प्रत्येक राज्य के लिए अलग छवि न होने का क्या मतलब है? क्या आप एक छवि चाहते हैं कि आपका ऐप प्रत्येक बार संशोधित हो, जैसे कि उसका रंग बदलना? –

+0

हां, मेरा मतलब है कि उपयोगकर्ता को यह बताने के लिए कि बटन दबाया गया है (जैसे इसे दिखा रहा है, या आईफोन में पृष्ठभूमि को फैन करना पसंद है)। क्यों एंड्रॉइड अतिरिक्त छवियों का उपयोग किए बिना इस तरह के एक आम कार्य के लिए एक रास्ता प्रदान नहीं करते हैं? – Pritam

+0

मुझे Google दृश्य उदाहरण के बारे में नहीं सुना है। वह कहां है? – Praveen

उत्तर

2

रंगफिल्टर विधि का उपयोग करके केवल एक छवि फ़ाइल के साथ करना संभव है। हालांकि, ColorFilter ImageViews के साथ काम करने की अपेक्षा करता है, न कि बटन, इसलिए आपको अपने बटन को ImageViews में बदलना होगा। यह कोई समस्या नहीं है यदि आप छवियों का उपयोग अपने बटन के रूप में कर रहे हैं, लेकिन यदि आपके पास टेक्स्ट था तो यह अधिक परेशान है ... वैसे भी, मानते हुए कि आपको टेक्स्ट के साथ समस्या का समाधान मिल रहा है, यहां उपयोग करने के लिए कोड है:

ImageView button = (ImageView) findViewById(R.id.button); 
button.setColorFilter(0xFFFF0000, PorterDuff.Mode.MULTIPLY); 

यह बटन पर एक लाल ओवरले लागू होता है (रंग कोड पूरी तरह से अपारदर्शी लाल के लिए हेक्स कोड है - पहले दो अंक पारदर्शिता हैं, फिर यह आरआर जीजी बीबी है।)।

आप अपने ImageViews अपने imageView उपयोग android:background="@drawable/btn_normal_default" और android:src="..." में अपनी परियोजना के लिए अपने sdkfolder/प्लेटफार्मों/(Android संस्करण/डेटा/res/drawable से btn_default_normal.9.png फ़ाइल को कॉपी। फिर से सामान्य बटन की तरह लग रहे बना सकते हैं बटन के अंदर एक छवि सेट करने के लिए।

+0

आप इसे text.btnLeaderboard.setTextColor (Color.parseColor (# 362D26)) के साथ कर सकते हैं; –

12

आपको ऐसा करने के लिए दो छवियों का उपयोग करना होगा।

  1. button_normal
  2. button_pressed

तो drawable फ़ोल्डर

<?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/button_normal" /> 

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

</selector> 

तो में एक xml संसाधन बनाने के लिए, imageView के लिए एक पृष्ठभूमि के रूप में इस फाइल को निर्धारित किया है। यहां हम बटन के रूप में imageview का उपयोग कर रहे हैं। खींचने योग्य फ़ोल्डर में उन दो बटनों को शामिल करना न भूलें। बस।

+2

आपके उत्तर के लिए धन्यवाद, लेकिन जैसा कि मैंने पहले ही उल्लेख किया है, इस समाधान के लिए 2 drawables (drawable/button_normal और drawable/button_pressed) की आवश्यकता है और मैं अपने आवेदन में विभिन्न बटन स्टेटस के लिए अतिरिक्त ड्रॉबल्स से बचना चाहता हूं क्योंकि कई अलग-अलग बटन हैं। मेरा उद्देश्य केवल उपयोगकर्ता को दबाए गए बटन की प्रतिक्रिया देना है। क्या कोई काम आसपास है? – Pritam

1

आप एक साधारण पारदर्शी काला छवि बना सकते हैं, और एक स्तर-सूची बनाने योग्य बना सकते हैं जिसके द्वारा आप वास्तविक छवि पर पारदर्शी छवि डाल सकते हैं। इससे इसे धक्का देने का असर पड़ता है। आप नीचे दिखाए गए अनुसार एक ऑनक्लिक छवि के रूप में इसका उपयोग कर सकते हैं।

<?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="true"> 
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item android:drawable="@drawable/image"> 
     </item> 
     <item android:drawable="@drawable/transparent_image"> 
     </item> 
    </layer-list> 
</item> 
<item android:drawable="@drawable/image"></item> 
</selector> 
0

बस ऐसा करने के लिए एक और आसान तरीका जोड़ना चाहते हैं: यदि आपकी छविबटन अपनी पृष्ठभूमि बना हुआ है और आप इसे शून्य पर सेट नहीं करते हैं, तो यह सामान्य बटन की तरह काम करेगा और अन्य बटनों की तरह क्लिक करते समय क्लिक एनीमेशन दिखाएगा। पृष्ठभूमि को छिपाने के लिए यह अभी भी वहाँ है, जबकि:

<ImageButton 
    android:id="@+id/imageButton2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:paddingBottom="1dp" 
    android:paddingLeft="1dp" 
    android:paddingRight="1dp" 
    android:paddingTop="1dp" 
    android:src="@drawable/squareicon" /> 

paddings नहीं दूँगी पृष्ठभूमि दिखाई दे सकता है और अन्य बटन की तरह बटन कार्य करते हैं।

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