In an app I am working on, I have several ImageButtons. Each ImageButton has a background and content in the form of a drawable. Right now the drawable is at maximum size within the confines of the ImageButton, but I want it to scale down so I need to add some padding. The thing is that when I try to do that, it doesn't have any effect. My XML is as follows for each 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" />
Any ideas why the padding doesn't do anything?
Full XML code:
<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>
You have to add to Your ImageButton definition
android:scaleType="fitCenter"
or other scaleType like fitXY, because by default image try to scale as much as possible and ignore padding
The padding only has effect on the android:src
attribute, not on the android:background
.
Set the first to your button image and the latter to android:background="@android:color/transparent"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With