Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to change a drawableLeft icon size on a button?

I added some icons on 4 buttons and they look so big next to the button. So how can I resize them? I used drawableLeft on the buttons to add icons.

The drawables are called deal, trophy, puzzle and megaphone. The icons are too big. The content_main.xml file:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app="http://schemas.android.com/apk/res-auto"     xmlns:tools="http://schemas.android.com/tools"     android:id="@+id/content_main"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:paddingBottom="@dimen/activity_vertical_margin"     android:paddingLeft="@dimen/activity_horizontal_margin"     android:paddingRight="@dimen/activity_horizontal_margin"     android:paddingTop="@dimen/activity_vertical_margin"     app:layout_behavior="@string/appbar_scrolling_view_behavior"     tools:context="tr.k12.evrim.evrimnews.MainActivity"     tools:showIn="@layout/activity_main">         <FrameLayout         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:id="@+id/frameLayout"         android:layout_alignParentTop="true"         android:layout_alignParentStart="true">           <LinearLayout             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:orientation="vertical">              <Button                 android:layout_width="match_parent"                 android:layout_height="wrap_content"                 android:text="Giriş Yap"                 android:onClick="SignIn"                 android:textStyle="bold"                 style="@style/Widget.AppCompat.Button.Colored"/>                 </LinearLayout>       </FrameLayout>      <LinearLayout         android:layout_width="match_parent"         android:layout_height="400dp"         android:layout_below="@id/frameLayout"         android:orientation="vertical">        <Button         android:text="Duyurular"         android:layout_width="match_parent"         android:layout_height="match_parent"         android:layout_weight="1"         android:layout_below="@+id/frameLayout"         android:layout_centerHorizontal="true"         android:layout_marginTop="13dp"         android:id="@+id/button2"         android:drawableLeft="@drawable/megaphone" />      <Button         android:text="Kadromuz"         android:layout_width="match_parent"         android:layout_height="match_parent"         android:layout_weight="1"         android:layout_below="@+id/button2"         android:layout_alignEnd="@+id/button2"         android:layout_marginTop="13dp"         android:id="@+id/button3"         android:drawableLeft="@drawable/puzzle"/>          <Button             android:text="Başarılarımız"             android:layout_width="match_parent"             android:layout_height="match_parent"             android:layout_weight="1"             android:layout_marginTop="12dp"             android:id="@+id/button5"             android:drawableLeft="@drawable/trophy"/>       <Button         android:text="Ortaklarımız"         android:layout_width="match_parent"         android:layout_height="match_parent"         android:layout_weight="1"         android:layout_marginTop="12dp"         android:id="@+id/button4"         android:drawableLeft="@drawable/deal"/>         </LinearLayout>  </RelativeLayout> 
like image 283
Arda Çebi Avatar asked Dec 06 '16 15:12

Arda Çebi


People also ask

How do I change drawable size on android?

Once you import svg file into Android Studio project, you are going to see <vector> resource then just change the size as you want by width , height attributes. viewportWidth and viewportHeight is to set size for drawing on virtual canvas.

How can set image in center of button in Android?

Create a RelativeLayout "wrap_content" with the button image as the background or the button itself as the first element of the layout. Get a LinearLayout and set it to "layout_centerInParent" and "wrap_content". Then set your Drawable as an Imageview.

What is Layer list in Android?

Layer list. A LayerDrawable is a drawable object that manages an array of other drawables. Each drawable in the list is drawn in the order of the list—the last drawable in the list is drawn on top.


2 Answers

Wrap your resource in a drawable that defines your desired size similar to:

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >    <item       android:drawable="@drawable/icon"       android:width="@dimen/icon_size"       android:height="@dimen/icon_size"       />  </layer-list > 

After that, use this drawable in your android:drawableLeft tag

like image 132
DroidBender Avatar answered Sep 29 '22 01:09

DroidBender


Just use Google's MaterialButtons: https://material.io/develop/android/components/buttons/

app:icon app:iconGravity app:iconPadding app:iconSize 
like image 31
PenguinDan Avatar answered Sep 29 '22 02:09

PenguinDan