ImageButton拉伸背景图片

3
我正在尝试创建一个没有边框的ImageButton,但我在图片按钮的大小方面遇到了问题。
使用Eclipse ADT,我将ImageButton拖到布局中并选择我的背景图像。图像按钮显示如下:
如您所见,在背景图像和图像按钮周界之间有一个边框,我想摆脱它。为此,我将填充属性设置为0dp。现在,图像按钮看起来像这样:
最后,我将比例类型设置为fitXY:
请注意,该图像被拉伸,并且不再是原始图像的大小。(我希望ImageButton的大小与背景图像的大小完全相同。)
以下是所有3个图像并排放置的快照,以更清楚地显示差异:
我已经尝试调整图像大小、设置最大大小属性等,但似乎没有什么可以防止图像按钮拉伸背景图像。
我应该如何防止图像被拉伸呢?
更新:
我还尝试将比例类型设置为矩阵,但是出现了以下情况:
4个回答

1

只需将您的图像设置为按钮的android:background,并将按钮的layout_heightlayout_width设置为wrap_content


它已经设置为wrap_content。我猜当你使用Eclipse ADT拖动一个图像按钮时,这是默认值。 - Jan Tacci
此外,在您的情况下,您不需要使用ImageButton。您可以使用没有文本的简单按钮。 - Anton-M
我发现这样做的问题是,如果我将简单按钮的背景设置为图像,则在UI中不再获得点击效果。 - Jan Tacci
在这种情况下,您需要为按下状态和正常状态编写选择器。 请查看http://www.mkyong.com/android/android-imagebutton-selector-example/。 - Anton-M
我会采用你的解决方案,因为我决定使用带有选择器的按钮。谢谢! - Jan Tacci

0

0
使用ImageView代替,并将其设置为可点击。将scaleType设置为matrix(这将导致ImageView与其中的图像一样大)。 ImageButton的问题在于它会添加一个背景,导致填充等问题。

我现在会尝试,谢谢!这通常是人们尝试制作自定义按钮时所做的吗? - Jan Tacci
是的。您也可以自己覆盖ImageButton的背景。例如,使它成为透明颜色。 - Streets Of Boston
我刚试着使用ImageView,但现在的问题是当我点击它时,我没有得到那种漂亮的click(闪烁)效果。我喜欢这种点击效果,因为它可以向用户提供他们已经按下按钮的反馈。 - Jan Tacci
如果您想要实现“闪烁”效果,那么您需要回到 ImageButton 并在图像周围设置一些填充。尝试在 ImageButton 上设置“scaleType =“ matrix””,看看会发生什么。 - Streets Of Boston
矩阵做了更奇怪的事情 :) 请查看我的原始帖子以获取图片。 - Jan Tacci
是的,这并不令人感到意外 :)。你需要编写自己的(选择器/状态列表)背景,以获得所需的效果。 - Streets Of Boston

0

你可以设置android:background="@null"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接