Android Drawable从按钮边框溢出

时间:2017-05-06 17:31:17

标签: android

我使用以下代码将图像缩放到150dpx150dp并放入150dpx150dp按钮内,但图像溢出了所有维度的按钮:

    float densityScale = getResources().getDisplayMetrics().density;
    float scaledImageWidth = 150 * densityScale;

    float scaledImageHeight =  150 * densityScale;
    Drawable image = getResources().getDrawable(R.drawable.user_photo);
    Bitmap bitmap = ((BitmapDrawable)image).getBitmap();
    Drawable scaledImage = new BitmapDrawable(Bitmap.createScaledBitmap(bitmap, (int)scaledImageWidth, (int)scaledImageHeight, true));
    scaledImage.setBounds(0, 0, (int)scaledImageWidth, (int)scaledImageHeight);
    ((Button)findViewById(R.id.button)).setCompoundDrawables(null, scaledImage, null, null);
    ((Button)findViewById(R.id.button)).setPadding(0,0,0,0);

enter image description here

按钮和图像大小相同。为什么会发生这种溢出?如何解决?

(我知道我可以使用ImageButton,但我想使用button drawable,因为有些情况下我需要添加文本等。)

1 个答案:

答案 0 :(得分:1)

你需要一个较小的drawable。 Button已经有一个带有特定填充的背景

enter image description here