2012-10-12 14 views
5

Chcę, aby moje przyciski były przezroczyste, ponieważ mam obraz na aktywność jako tło. Jeśli przyciski nie są przezroczyste, przyciski te zakrywają obraz, a tło obrazu wydaje się bezużyteczne.Jak zrobić przezroczysty przycisk w mojej aplikacji jeszcze widoczny

Jeśli użyję android:background="@android:color/transparent", mój przycisk będzie całkowicie niewidoczny, z wyjątkiem tekstu na nim. Potrzebuję więc przycisku, aby był przezroczysty, pod warunkiem, że powinien być widoczny przycisk. Fragment kodu zostałby doceniony.

<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

Nie rozumiem. Czy masz na myśli, że nie widzisz obrazu, który ustawiłeś w działaniu za pomocą przycisku? Czy masz na myśli "częściowo przezroczysty"? – Simon

+0

@Simon Tak, chcę, aby przycisk był częściowo przezroczysty. Żeby było widać, że jest przycisk. – hrithik

Odpowiedz

2

Zastosuj przełącznik dla przycisku, jak to

<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> 

zmodyfikować to dla ciebie =)

1

Zastosuj granicę dla przycisku

<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" 

Mam ciężko kodowane koloru, ale należy przechowywać go w colors.xml

Zmienić dwa pierwsze znaki, A0, aby dostosować Ile ty przejrzystości chcę i 6 ostatnich znaków, które chcesz.

24

Jeśli chcesz po prostu białym obramowaniem, a tekst/ikony w przycisku, ale przycisk tło przezroczyste utworzyć następujący odkształcalne (nazwałem go 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> 

i używać go jako tło dla przycisku:

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

przypuszczam jest bardziej elegancki sposób to zrobić z tematów, ale nie jestem jeszcze tak daleko. W button_border rozciągliwej można dodać zaokrąglone narożniki i etażerka ...

0

Wystarczy spróbować skorzystać z poniższego kodu w Javie

<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/> 

które sprawiają, że cały przycisk przejrzyste.

Powiązane problemy