如何在运行时设置android:drawableTop之类的按钮中设置drawable(改变大小)

时间:2011-10-21 11:41:19

标签: android button drawable

我从服务器获取与其相关的图像和文本的数量 现在我想在LinearLayout

中为每个图像设置文本(在底部)

我从here

得到了问题第二部分的答案

button.setCompoundDrawables(left, top, right, bottom);

但问题是我正在获得不同大小的图像并想要调整它们的大小

我成功通过使用布局参数来调整Button的大小,但是

setCompoundDrawable(left,top,right,bottom);图片未调整大小

我怎样才能实现这个目标?

1 个答案:

答案 0 :(得分:1)

我希望下面的代码对你有用因为它与我合作

   Bitmap bitmap = ImageResizeUtility.resizeBitmap(bitmap, 100, 110);

使用此类调整图像大小

public class ImageResizeUtility
{

    public static Bitmap resizeBitmap(final Bitmap bitmap, final int width, final int height)
    {
        final int oldWidth = bitmap.getWidth();
        final int oldHeight = bitmap.getHeight();
        final int newWidth = width;
        final int newHeight = height;

        // calculate the scale
        final float scaleWidth = ((float) newWidth) / oldWidth;
        final float scaleHeight = ((float) newHeight) / oldHeight;

        // create a matrix for the manipulation
        final Matrix matrix = new Matrix();
        // resize the Bitmap
        matrix.postScale(scaleWidth, scaleHeight);
        // if you want to rotate the Bitmap

        // recreate the new Bitmap
        final Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, oldWidth, oldHeight, matrix, true);

        return resizedBitmap;
    }