Android 按钮未更改图像以适合内部
Android Button Is Not Changing Image To Fit Inside
我正在以编程方式创建一个按钮。但是,无论我设置什么,按钮图标都会出现在框的边界之外。我希望图像适合按钮尺寸。更改我的比例类型没有效果(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);
我刚刚对其进行了测试,以下组合对我有用:
_cancelSelectPhotoButton.setScaleType(ImageView.ScaleType.FIT_CENTER);
_cancelSelectPhotoButton.setAdjustViewBounds(true);
这就是我得到的。我为 ImageButton 添加了背景颜色和填充以查看实际框。
注意:
在使用不同的方法进行测试后,我们发现如果您为 ImageButton 设置背景颜色,则图像会正确显示。
没有它,不知何故在 Nexus 5 上工作但在 Nexus 6 上不工作。
_cancelSelectPhotoButton.setBackgroundColor(Color.TRANSPARENT);
我正在以编程方式创建一个按钮。但是,无论我设置什么,按钮图标都会出现在框的边界之外。我希望图像适合按钮尺寸。更改我的比例类型没有效果(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);
我刚刚对其进行了测试,以下组合对我有用:
_cancelSelectPhotoButton.setScaleType(ImageView.ScaleType.FIT_CENTER);
_cancelSelectPhotoButton.setAdjustViewBounds(true);
这就是我得到的。我为 ImageButton 添加了背景颜色和填充以查看实际框。
注意:
在使用不同的方法进行测试后,我们发现如果您为 ImageButton 设置背景颜色,则图像会正确显示。 没有它,不知何故在 Nexus 5 上工作但在 Nexus 6 上不工作。
_cancelSelectPhotoButton.setBackgroundColor(Color.TRANSPARENT);