studio programacion herramientas fundamentos con avanzado aplicaciones android padding imagebutton

programacion - manual de android en pdf



El relleno no funciona en ImageButton (2)

El relleno solo tiene efecto en el atributo android:src , no en el android:background .

Establezca el primero en su imagen de botón y el último en android:background="@android:color/transparent"

En una aplicación en la que estoy trabajando, tengo varios ImageButtons. Cada ImageButton tiene un fondo y contenido en forma de dibujable. En este momento, el dibujo está en su máximo tamaño dentro de los límites del ImageButton, pero quiero que se reduzca, así que necesito agregar algo de relleno. El caso es que cuando trato de hacer eso, no tiene ningún efecto. Mi XML es el siguiente para cada ImageButton:

<ImageButton android:id="@+id/button_zero" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:padding="10dip" android:src="@drawable/button_zero" android:background="@drawable/button_background" />

¿Alguna idea de por qué el relleno no hace nada?

Código XML completo:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#222222" tools:context=".Main" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <!-- Row One --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <ImageButton android:id="@+id/button_zero" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:padding="10dip" android:src="@drawable/button_zero" android:background="@drawable/button_front" /> <ImageButton android:id="@+id/button_one" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:padding="10dip" android:src="@drawable/button_one" android:background="@drawable/button_front" /> <ImageButton android:id="@+id/button_two" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:padding="10dip" android:src="@drawable/button_two" android:background="@drawable/button_front" /> <ImageButton android:id="@+id/button_three" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:padding="10dip" android:src="@drawable/button_three" android:background="@drawable/button_front" /> <ImageButton android:id="@+id/button_four" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:padding="10dip" android:src="@drawable/button_four" android:background="@drawable/button_front" /> </LinearLayout> ... same for other rows </LinearLayout>


Tienes que agregar a tu definición de ImageButton

android:scaleType="fitCenter"

u otro tipo de escala como fitXY, porque por imagen predeterminada intenta escalar tanto como sea posible e ignora el relleno