2016-08-27 24 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);