2016-08-27 83 views
1

在下面的屏幕截图中,我为按钮和图像视图使用了相同的图标,但是我似乎无法控制的是按钮内图标的缩放比例,我可以通过降低分辨率使图标变小,使按钮更小,但使图标像素化。有没有办法让按钮具有高分辨率图标,并让按钮控制整体大小?如何缩放按钮内部的可绘制按钮,使按钮大小不受可绘制的控制?

enter image description here

XML的按钮:

<Button 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="Email" 
    android:id="@+id/em_btn" 
    android:layout_gravity="center_horizontal" 
    android:backgroundTint="#ffffff" 
    android:drawableLeft="@drawable/email2"/> 
+0

后的代码的按钮。 –

+0

@Ajay添加了XML代码,我没有对Java按钮做任何事情,如果可能的话,我想用XML做所有事情。 – hylo

+0

试试我的答案。我认为它会解决你的问题。但我强烈建议使用mipmap图像。 –

回答

1
Drawable emailImg = getResources().getDrawable(R.drawable.email2); 
     drawable.setBounds(0, 0, (int)(drawable.getIntrinsicWidth()*0.1), 
       (int)(drawable.getIntrinsicHeight()*0.1)); 
     ScaleDrawable scaledImg = new ScaleDrawable(emailImg, 0, 10, 10); 
     Button button = (Button)findViewById(R.id.em_btn); 
     button.setCompoundDrawables(scaledImg.getDrawable(), null, null, null); 

试试这个

+0

这很好用,我只是将乘数更改为0.2! – hylo

0

在您的按钮,呼叫setScaleX(floatValue);setScaleY(floatValue);