Aquí vamos. Tengo un botón que tiene un no-estado presionado fondo como transparente. Tan pronto como se pulsa el botón, el fondo ya no es transparente (ver las fotos). Yo uso nueve parche para todas mis imágenes.

Esta es mi selección:

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

Y aquí es el diseño:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

<ImageView
    android:id="@+id/mainMenuImage"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scaleType="fitXY"
    android:src="@drawable/starfighter" >

</ImageView>

<RelativeLayout
    android:id="@+id/buttons"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="20dp"
    android:orientation="horizontal" >

    <ImageButton
        android:id="@+id/btnStart"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:background="@android:color/transparent"
        android:clickable="true"
        android:hapticFeedbackEnabled="true"
        android:src="@drawable/startselector" >

    </ImageButton>

    <ImageButton
        android:id="@+id/btnExit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:clickable="true"
        android:src="@drawable/exitselector"
        android:background="@android:color/transparent"
        android:hapticFeedbackEnabled="true" >
    </ImageButton>

</RelativeLayout>

No Se Ha Hecho Clic:

Botón crear fondo transparente mediante el selector de

Clic:

Botón crear fondo transparente mediante el selector de

También he probado los siguientes métodos sin suerte

button.getBackground().setAlpha(0);
button.setBackgroundColor(Color.TRANSPARENT);

También trató de la siguiente dentro de la onClickListener()

view.getBackground().setAlpha(0);
view.setBackgroundColor(Color.TRANSPARENT);
button.getBackground().setAlpha(0);
button.setBackgroundColor(Color.TRANSPARENT);

Aún sin suerte. Buena suerte 🙂

  • Es posible que la segunda imagen de archivo de recursos para el botón no es transparente, mientras que la primera es?
  • Bueno, eso es vergonzoso. Sí, el botón de «abajo» .png no tiene un fondo transparente. Si sólo los programadores como yo podría pensar….
InformationsquelleAutor Fobos13 | 2013-07-15

3 Comentarios

  1. 7

    para hacer su botón transparente el fondo en no presiona estado , su selector debe ser como este :

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

    Y en su imageButton la declaración de xml debe utilizar el selector de fondo y no hacer nada como una fuente de su imageButton:

    <ImageButton
            android:id="@+id/btnStart"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:src="@drawable/startselector"
            android:background="@android:color/transparent"
            android:clickable="true"
            android:hapticFeedbackEnabled="true" />
    • Estoy usando el selector para dibujar el botón en reposo y el botón de abajo, así que esto no iba a funcionar
    • Lo dicho… con una condición. Entiendo que la usa como el fondo del botón, pero usted no necesita la transparencia de la declaración para el selector de tan largo como el parche de 9 imágenes para el botón de reposo/pulsa tener un fondo transparente
    • Lo siento , usted debe hacer un selector para su atributo src con dos imágenes ( Inicio en ambos colores con el color transparente en el fondo, en ambos estados ) , y añadir un src de la imagen para su ImageButton
    • Una cosa extraña. Uso del color/transparente trabajado, pero sólo después de que hice una Build->Limpia. Estoy usando el ADK. Molesto, pero no llegó a terminar el trabajo.
  2. 0

    Usted podría usar el Color.argb(). Lleva cuatro int parámetros, cada uno de los que van de 0 a 255.

    Digamos que usted quiere un botón azul con el 50% alfa:

    button.setBackgroundColor(Color.argb(125, 0, 0, 255));
  3. -1

    También puede probar este

    <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="?attr/selectableItemBackground"/>

Dejar respuesta

Please enter your comment!
Please enter your name here