调整图像大小并将其设置在按钮的中心,文本视图位于底部

时间:2015-06-11 07:03:21

标签: android android-button picasso

这就是我创建按钮的方式

Mybutton btn1 = new Mybutton(getApplicationContext());
                                        btn1.setId(20+i);
                                        btn1.setText(jobj1.getString("name"));
                                        btn1.setTextColor(Color.WHITE);
                                        btn1.setWidth(dpToPx(150));
                                        btn1.setHeight(dpToPx(150));
                                        btn1.setGravity(Gravity.BOTTOM|Gravity.CENTER);        // part2
                                        btn1.setPadding(5, 5, 5, 5);
                                        Picasso.with(getApplicationContext()).load(jobj1.getString("image")).into(btn1);
                                        tr_head.addView(btn1);// add the column to the table row here

它创建这样的布局 enter image description here

这里是自定义mybutton类

public class Mybutton extends Button implements Target {

    public Mybutton(Context context) {
        super(context);
    }

    public Mybutton(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public Mybutton(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
        setBackgroundDrawable(new BitmapDrawable(bitmap));
    }

    @Override
    public void onBitmapFailed(Drawable errorDrawable) {

    }

    @Override
    public void onPrepareLoad(Drawable placeHolderDrawable) {

    }
}

我想要的是调整图标的大小以使它们很小并将它们设置为按钮的中心。另外我如何设置此按钮的左右两侧

1 个答案:

答案 0 :(得分:0)

有几个选项可以做到这一点: 您可以在可绘制文件中调整原始图像的大小,并将宽度和高度设置为wrap_content,或者您可以使用

btn.setScaleType(yourType);

这是一种可能有助于扩展图像的方法:

public static Bitmap scaleDownBitmap(Bitmap photo, int newHeight,int newWidth, Context context) {
        photo=Bitmap.createScaledBitmap(photo, newWidth, newHeight, true);
        return photo;
         }

设置按钮的边距,实际使用:

    LayoutParams params = new LayoutParams(
        LayoutParams.WRAP_CONTENT,      
        LayoutParams.WRAP_CONTENT
        );
    params.setMargins(left, top, right, bottom);
    yourbutton.setLayoutParams(params);