Android按钮不会更改图像以适应内部

时间:2015-05-15 16:49:49

标签: java android imagebutton scaletype

我以编程方式创建了一个按钮。但无论我设置什么,按钮图标都出现在框的边界之外。我希望图像适合按钮尺寸。更改我的缩放类型没有效果(CENTER_CROP看起来与FIT_CENTER相同)所以我的代码可能会出现根本性的错误。如果你可以建议我做错了什么我会很感激:

    int buttonDimension = 100;

    _cancelSelectPhotoButton = new ImageButton(this);
    _cancelSelectPhotoButton.setImageResource(R.drawable.deselecticon);
    _cancelSelectPhotoButton.setPadding(0, 0, 0, 0);
    _cancelSelectPhotoButton.setScaleType(ImageView.ScaleType.CENTER_CROP);//all scale types look the same
    _cancelSelectPhotoButton.setAdjustViewBounds(false);//true has no effect either
    _cancelSelectPhotoButton.setMinimumHeight(buttonDimension);
    _cancelSelectPhotoButton.setMaxHeight(buttonDimension);
    _cancelSelectPhotoButton.setMinimumWidth(buttonDimension);
    _cancelSelectPhotoButton.setMaxWidth(buttonDimension);
    _cancelSelectPhotoButton.setX(0);

enter image description here

1 个答案:

答案 0 :(得分:1)

我刚试过它,以下组合对我有用:

 _cancelSelectPhotoButton.setScaleType(ImageView.ScaleType.FIT_CENTER);
 _cancelSelectPhotoButton.setAdjustViewBounds(true);

这就是我所得到的。我为ImageButton添加了一个背景颜色和一个填充,以便查看实际的框。

enter image description here

注意:

在使用不同的方法进行测试后,我们发现如果您为ImageButton设置背景颜色,则图像会正确匹配。 如果没有它,可以在Nexus 5上运行,但不能在Nexus 6上运行。

_cancelSelectPhotoButton.setBackgroundColor(Color.TRANSPARENT);