如何更改drawableLeft图标大小?

时间:2017-06-16 07:54:26

标签: android

我已经找到了一些解决方案how to change a drawableLeft icon size on a button?,但它对我不起作用。

我的按钮布局:

<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 >

当我编译项目时,它(photo2)看起来不像预览布局(photo1): enter image description here enter image description here

我无法弄清楚为什么会发生这种情况,有人可以教我如何解决这个问题吗? 任何帮助将不胜感激,提前谢谢。

1 个答案:

答案 0 :(得分:3)

你从我的链接中得到答案,但我想给你答案,这样可以帮助别人。

在代码中设置缩放的可绘制

 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);