2012-10-12 24 views
5

मैं अपने बटन पारदर्शी होना चाहता हूं क्योंकि मेरे पास पृष्ठभूमि के रूप में गतिविधि पर एक छवि है। यदि बटन पारदर्शी नहीं हैं, तो वे बटन छवि को कवर कर रहे हैं और छवि पृष्ठभूमि बेकार लगता है।मेरे ऐप में बटन पारदर्शी बनाने के लिए अभी तक दृश्यमान

यदि मैं android:background="@android:color/transparent" का उपयोग करता हूं, तो यह मेरे बटन को टेक्स्ट को छोड़कर पूरी तरह से अदृश्य कर रहा है। इसलिए, मुझे बटन पारदर्शी होने की आवश्यकता है बशर्ते यह दिखाना चाहिए कि एक बटन है। कोड स्निपेट की सराहना की जाएगी।

<Button 
android:id="@+id/new_button" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:background="@android:color/transparent" //this line makes the button completely invisible. 
android:text="@string/label" /> 
+0

मुझे समझ में नहीं आता है। क्या आपका मतलब है कि आप बटन के माध्यम से गतिविधि में सेट की गई छवि को नहीं देखते हैं? क्या आपका मतलब "आंशिक रूप से पारदर्शी" है? – Simon

+0

@ सिमॉन हां, मैं चाहता हूं कि बटन आंशिक रूप से पारदर्शी हो। तो, यह दिखाना चाहिए कि एक बटन है। – hrithik

उत्तर

2

बटन के लिए चयनकर्ता लागू करें, इस

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

<item android:state_pressed="true"><shape> 
     <solid 
      android:color="@color/color_1_end" /> 

     <stroke 
      android:width="1dp" 
      android:color="@android:color/transparent" /> // transparent patametr 

     <corners 
      android:radius="4dp" /> 

     <padding 
      android:bottom="10dp" 
      android:left="10dp" 
      android:right="10dp" 
      android:top="10dp" /> 
    </shape></item> 
<item> 
    <shape> 
     <gradient android:angle="270" 
      android:endColor="@color/color_1_start" 
      android:startColor="@color/color_1_end" /> // maybe transparent 

     <stroke 
      android:width="1dp" 
      android:color="@color/color_1_start" /> //maybe transparent 

     <corners android:radius="4dp" /> 

     <padding android:bottom="10dp" 
      android:left="10dp" 
      android:right="10dp" 
      android:top="10dp" /> 
    </shape> 

    </item> 

की तरह आप के लिए यह संशोधित =)

1

बटन

के लिए सीमा लागू करें
<item> 
    <shape> 
     <padding 
      android:bottom="1dp" 
      android:left="1dp" 
      android:right="1dp" 
      android:top="1dp" /> 

     <solid android:color="#FF000000" /> 

     <corners android:radius="3dp" /> 
    </shape> 
</item> 
<item> 
    <shape> 
     <padding 
      android:bottom="2dp" 
      android:left="2dp" 
      android:right="2dp" 
      android:top="2dp" /> 

     <gradient 
      android:angle="315" 
      android:centerColor="#FFFFFFFF" 
      android:endColor="#FFB0B0B0" 
      android:startColor="#FFB0B0B0" /> 
    </shape> 
</item> 

<Button 
     android:id="@+id/btnLeft" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_margin="7dip" 
     android:background="@drawable/button_border" 
     android:scaleType="centerInside" 
/> 
4
android:background="#A0FFFFFF" 

मैं कठिन कोडित रंग है, लेकिन आप colors.xml

में संग्रहीत करना चाहिए पहले दो अक्षर के संशोधित करें, A0, कितना पारदर्शिता आप को समायोजित करने के चाहते हैं और आखिरी 6 वर्ण जो रंग आप चाहते हैं।

24

तुम सिर्फ सफेद सीमाओं चाहते हैं, और पाठ/बटन में आइकन, लेकिन बटन पृष्ठभूमि पारदर्शी निम्नलिखित drawable बनाने (मैं नामित यह button_border.xml):

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

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape> 
      <stroke 
       android:color="@android:color/white" 
       android:width="1dp" /> 
      <solid android:color="@android:color/transparent" /> 
     </shape> 
    </item> 
</selector> 

और एक के रूप में उपयोग बटन के लिए पृष्ठभूमि:

<Button 
    . 
    . 
    . 
    android:background="@drawable/button_border" 
    /> 

मुझे लगता है कि चाहते हैं वहाँ विषयों के साथ यह करने के लिए एक और अधिक सुरुचिपूर्ण तरीका है, लेकिन मुझे लगता है कि अब तक अभी तक नहीं कर रहा हूँ। button_border में drawable आप गोलाकार कोनों और whatnot में जोड़ सकते हैं ...

0

बस जावा

<br/> 
    button.getBackground().setAlpha(int);<br/> 
correct range of input parameter is between 1 and 255 and the '1' is more transparent. 
common pitfall is using:<br/> 
    button.setAlpha(float);<br/> 

कि सभी बटन पारदर्शी बनाने में नीचे दिए गए कोड का उपयोग करने का प्रयास करें।