In Android, ImageButton is used to display a normal button with a custom image in a button. In simple words we can say, ImageButton is a button with an image that can be pressed or clicked by the users.
You can use android:background="@null" for your ImageButton.
I want them to cover 75% of the button area.
Use android:padding="20dp"
(adjust the padding as needed) to control how much the image takes up on the button.
but where as some images cover less area, some are too big to fit into the imageButton. How to programatically resize and show them?
Use a android:scaleType="fitCenter"
to have Android scale the images, and android:adjustViewBounds="true"
to have them adjust their bounds due to scaling.
All of these attributes can be set in code on each ImageButton
at runtime. However, it is much easier to set and preview in xml in my opinion.
Also, do not use sp
for anything other than text size, it is scaled depending on the text size preference the user sets, so your sp
dimensions will be larger than your intended if the user has a "large" text setting. Use dp
instead, as it is not scaled by the user's text size preference.
Here's a snippet of what each button should look like:
<ImageButton
android:id="@+id/button_topleft"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginBottom="5dp"
android:layout_marginLeft="2dp"
android:layout_marginRight="5dp"
android:layout_marginTop="0dp"
android:layout_weight="1"
android:adjustViewBounds="true"
android:padding="20dp"
android:scaleType="fitCenter" />
I'm using the following code in xml
android:adjustViewBounds="true"
android:scaleType="centerInside"
Try to use android:scaleType="fitXY"
in i-Imagebutton xml
I'm using android:scaleType="fitCenter"
with satisfaction.
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