बटन पृष्ठभूमि पारदर्शी के रूप में


177

मेरे पास एक बटन है। जब मैं बटन दबाता हूं तो मुझे टेक्स्ट को बोल्ड करना पड़ता है अन्यथा सामान्य। इसलिए मैंने बोल्ड और सामान्य के लिए शैलियों को लिखा।

<style name="textbold" parent="@android:style/TextAppearance">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textStyle">bold</item>
</style>
<style name="textregular" parent="@android:style/TextAppearance">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textStyle">normal</item>
</style>

अब मेरे पास एक बटन_states.xml है:

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

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="true"
    style="@style/textbold" />
<item android:state_focused="false" android:state_pressed="true"
    style="@style/textregular" />

<item style="@style/textregular" />
</selector> 

इस बटन के लिए मेरे लेआउट में, मुझे पृष्ठभूमि को भी पारदर्शी बनाना होगा ... मैं इसे कैसे करूंगा? मेरा लेआउट कोड है:

<Button android:id="@+id/Btn" android:background="@drawable/button_states" />

मैं अपनी शैली में पारदर्शी के रूप में पृष्ठभूमि को कैसे शामिल करूंगा?


3
तो इनमें से कई अच्छे जवाब अब तक स्वीकार किए जा सकते हैं ...
QED

बाहर की जाँच इस जवाब यहाँ की सीमा के साथ पारदर्शी बटन बनाने के लिए
बशीर अल MOMANI

'आप सिर्फ एक TextView का उपयोग क्यों नहीं करते हैं और उस पर कार्रवाई को कॉल करते हैं?
दूल्हा wnRp

जवाबों:


360

पृष्ठभूमि को पारदर्शी बनाने के लिए, बस करें android:background="@android:color/transparent"

हालाँकि, आपकी समस्या थोड़ी गहरी लग रही है, क्योंकि आप चयनकर्ताओं का उपयोग बहुत ही अजीब तरीके से कर रहे हैं। जिस तरह से आप इसका उपयोग कर रहे हैं वह गलत लगता है, हालांकि अगर यह वास्तव में काम करता है, तो आपको पृष्ठभूमि छवि को शैली में डाल देना चाहिए <item/>

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


1
मेरे स्पष्ट उत्तर पर एक नजर। मैंने शुरू करने के लिए आपकी समस्या को गलत बताया। पृष्ठभूमि शैली में सेट हो जाती है।
स्टीव पोमेरॉय

क्षमा करें, मैं समाधान पर स्पष्ट नहीं हूं। बस @android सेटिंग: रंग / पारदर्शी ऑन-टच शैलियों का समर्थन नहीं करता है जो सामान्य बटन हैं (और पृष्ठभूमि को @ सेट करने के लिए बराबर है)।
गातोतिग्रादो

@gatoatigrado: क्या आपका मतलब है कि आप एक पारदर्शी क्षेत्र चाहते हैं जो नारंगी रंग में उल्लिखित है या कुछ में छायांकित है? यदि हां, तो आपको इसके लिए कस्टम 9-पैच इमेज बनाने की आवश्यकता होगी।
स्टीव पोमेरॉय

@StevePomeroy, हाँ, एंड्रॉइड 4.1 पर डिफ़ॉल्ट बटन का प्रभाव एक हल्के नीले रंग की रूपरेखा के लिए [बटन बटन पर] पृष्ठभूमि के लिए हल्का नीला है।
gatoatigrado

@gatoatigrado: ठीक है। यदि आप ऐसा चाहते हैं, तो आप पारदर्शी बटन का उपयोग नहीं कर सकते। मुझे यकीन नहीं है कि आप वहां क्या हासिल करने की कोशिश कर रहे हैं।
स्टीव पोमेरॉय

121

पृष्ठभूमि पारदर्शी सेट करने के लिए नया तरीका आज़माएं

    android:background="?android:attr/selectableItemBackground"

9
यह वही है जो मैं उपयोग करने की सलाह दूंगा। इस तरह, आप अपने बटनों के लिए सुंदर सामग्री डिजाइन एनिमेशन =) प्राप्त करने के लिए प्राप्त करते हैं
रयान न्यूज़ॉम

यह बेहतर उत्तर है
मार्कोस डावलोस

35

उपयोग #0000(केवल चार शून्य अन्यथा इसे माना जाएगा black) यह पारदर्शी के लिए रंग कोड है। आप इसे सीधे उपयोग कर सकते हैं लेकिन मैं आपको कलर.xml में एक रंग को परिभाषित करने की सलाह देता हूं ताकि आप कोड की फिर से उपयोगिता का आनंद ले सकें।


9
सौभाग्य से यह हमारे लिए पहले से ही परिभाषित किया गया है@android:color/transparent
रिचर्ड ले मेसियर

34

इसे अपने Xml में जोड़ें -android:background="@android:color/transparent"

        <Button
            android:id="@+id/button1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="Button"
            android:background="@android:color/transparent"
            android:textStyle="bold"/>

32

तुम भी उपयोग कर सकते हैं: अपने xml में:

android:background="@null"

या कोड में:

buttonVariable.setBackgroundColor(Color.TRANSPARENT);

विकल्प देने के लिए, सभी विकल्पों को देखने के लिए प्यार!
बुर्केली


9

मैंनें इस्तेमाल किया

btn.setBackgroundColor(Color.TRANSPARENT);

तथा

android:background="@android:color/transparent"

btn.setBackgroundColor (Color.TRANSPARENT); मेरे लिए ठीक काम करता है
jay_mziray

8

चयनकर्ता केवल ड्रॉबल्स के लिए काम करते हैं, न कि शैलियों के लिए। संदर्भ


सबसे पहले , बटन पृष्ठभूमि को पारदर्शी बनाने के लिए निम्नलिखित विशेषता का उपयोग करें क्योंकि यह सामग्री डिज़ाइन एनिमेशन को प्रभावित नहीं करेगा:

style="?attr/buttonBarButtonStyle"

आपके बटन को स्टाइल करने के कई तरीके हैं। की जाँच करें इस ट्यूटोरियल

दूसरा , दबाए गए पाठ को बोल्ड बनाने के लिए, इस जावा कोड का उपयोग करें:

btn.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {

        switch (event.getAction()) {
            // When the user clicks the Button
            case MotionEvent.ACTION_DOWN:
                btn.setTypeface(Typeface.DEFAULT_BOLD);
                break;

            // When the user releases the Button
            case MotionEvent.ACTION_UP:
                btn.setTypeface(Typeface.DEFAULT);
                break;
        }
        return false;
    }
});

1

आप रंगों को अल्फा चैनल सेट करके प्राप्त कर सकते हैं।

रंग योजना इस तरह की है #AARRGGBB ए में अल्फा चैनल (पारदर्शिता), आर का मतलब लाल, जी के लिए हरा और बी के लिए नीला है।


1

चरण 1: ड्रा करने योग्य और कॉपी पेस्ट में एक नई संसाधन फ़ाइल बनाएं

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

    <stroke android:color="#fff" android:width="2dp"/>
    <corners android:radius="25dp"/>
    <padding android:right="15dp" android:top="15dp" android:bottom="15dp" android:left="15dp"/>
</shape>

ButtonUI के रूप में इसे सहेजें (मान लें)

चरण 2: UI को बटन xml पर लागू करें

<Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="join the crew"
  android:background="@drawable/ButtonUI"
  android:textColor="#fff"/>


0

हम नीचे की तरह बटन xml में विशेषता android: पृष्ठभूमि का उपयोग कर सकते हैं ।

android:background="?android:attr/selectableItemBackground"

या हम शैली का उपयोग कर सकते हैं

style="?android:attr/borderlessButtonStyle" पारदर्शी और छाया कम पृष्ठभूमि के लिए।


-2

transparent(light gray)जब आप बटन पर क्लिक करते हैं तो आप पृष्ठभूमि का रंग लागू करते हैं ।

ButtonName.setOnClickListener()

उपरोक्त विधि में आप बटन का बैकग्राउंड कलर सेट करते हैं।


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

-2

आप इसे आसानी से नीचे xml फ़ाइल में विशेषता जोड़कर कर सकते हैं। इस कोड का काफी समय परीक्षण किया गया था।

android:background="@android:color/transparent"

2
यह उत्तर क्यों जोड़ें? यह समाधान पहले से ही दो अन्य उत्तरों में है, जिसमें सबसे अधिक वोटों के साथ।
मकेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.