我以编程方式创建了一个按钮。但无论我设置什么,按钮图标都出现在框的边界之外。我希望图像适合按钮尺寸。更改我的缩放类型没有效果(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);
答案 0 :(得分:1)
我刚试过它,以下组合对我有用:
_cancelSelectPhotoButton.setScaleType(ImageView.ScaleType.FIT_CENTER);
_cancelSelectPhotoButton.setAdjustViewBounds(true);
这就是我所得到的。我为ImageButton添加了一个背景颜色和一个填充,以便查看实际的框。
注意:强>
在使用不同的方法进行测试后,我们发现如果您为ImageButton设置背景颜色,则图像会正确匹配。 如果没有它,可以在Nexus 5上运行,但不能在Nexus 6上运行。
_cancelSelectPhotoButton.setBackgroundColor(Color.TRANSPARENT);