2017-06-16 108 views
0

我有一些解決方案how to change a drawableLeft icon size on a button?,但它不適合我。如何更改drawableLeft圖標大小?

我的按鍵佈局:

<RelativeLayout 
     android:id="@+id/twoButtonLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#eceef5" 
     android:visibility="visible"> 

     <Button 
      android:id="@+id/goToPersonalPage" 
      android:layout_width="150dp" 
      android:layout_height="50dp" 
      android:layout_marginLeft="31dp" 
      android:drawableLeft="@drawable/drawable_left_green" 
      android:paddingLeft="18dp" 
      android:drawablePadding="-10dp" 
      android:background="@drawable/button_oval" 
      android:text="ICon" 
      android:textColor="#29395e" 
      android:textSize="18dp" /> 

     <Button 
      android:id="@+id/logOutPersonal" 
      android:layout_width="150dp" 
      android:layout_height="50dp" 
      android:layout_alignParentRight="true" 
      android:layout_marginRight="30dp" 
      android:background="@drawable/button_oval" 
      android:text="@string/logOut" 
      android:textColor="#29395e" 
      android:textSize="18dp" /> 

    </RelativeLayout> 

我通過drawable_left_green.xml調整按鈕的大小:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    // I think it should be more smaller if i set 15sp. 
    <item 
     android:drawable="@mipmap/ic_launcher" 
     android:width="15sp" 
     android:height="15sp" 
     /> 

</layer-list > 

當我編譯項目它(照片2)並不像與預覽佈局(照片1 ): enter image description here enter image description here

我想不通爲什麼它會發生LIK這個,有人可以教我如何解決它? 任何幫助,將不勝感激,在此先感謝。

+2

設置比例繪製考慮這個鏈接https://stackoverflow.com/a/7538641/7104450 –

+0

而且你還可以使用花哨的按鈕,這種類型的任務了很好的圖書館這裏是鏈接https://github.com/medyo/Fancybuttons –

+0

我的Android Studio的預覽看起來像第二個圖像。 – wrkwrk

回答

2

你從我的鏈接中得到答案,但我想給你答案,所以它會幫助別人。

代碼

Drawable drawable = ContextCompat.getDrawable(YourActivity.this,R.drawable.akshay); 
drawable.setBounds(0, 0, (int)(drawable.getIntrinsicWidth()*0.5), 
        (int)(drawable.getIntrinsicHeight()*0.5)); 
ScaleDrawable sd = new ScaleDrawable(drawable, 0, scaleWidth, scaleHeight); 
Button btn = findViewbyId(R.id.yourbtnID); 
btn.setCompoundDrawables(sd.getDrawable(), null, null, null); 
+0

非常感謝! –

+0

需要API 23及更高版本? – sasan

+0

它是說Drawable drawable = getResources()。getDrawable(R.drawable.akshay); getDrawable depricated @sasan –