将XML中可绘制的按钮大小设置为图像大小

时间:2012-12-18 18:51:38

标签: android button size drawable

我正在尝试使用text和drawableTop创建按钮。我希望drawableTop是存储图像的常规尺寸,因为我对不同的屏幕尺寸有不同的尺寸。将height和width设置为match_parent似乎基于文本,将它们设置为dip值会更改按钮的大小,但不会更改图像的大小。我尝试过scaleX和scaleY,但这也改变了文本的大小,这是我不想要的。

我使用以下内容,但图像显示的内容远小于保存为

的图像
<Button
    android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label"
android:drawableTop="@drawable/my_image" />

是否有创建按钮的图像自动设置为全尺寸?

2 个答案:

答案 0 :(得分:2)

您可以使用普通的ImageView并为其设置onClickListener或XML onClick属性。

如果你想要不同的状态(例如按下和未按下),你可以使用xml中定义的drawable来设置它们。

答案 1 :(得分:1)

在文档TextView#setCompoundDrawablesWithIntrinsicBounds中,它说:

The Drawables' bounds will be set to their intrinsic bounds.

但是,按钮没有设置为可绘制的全尺寸的原因是我们将图像放在app项目中错误的res / drawable文件夹中。 您可以尝试将图像放到其他可绘制文件夹,例如drawable-xhdpi,drawable-hdpi等。图像将以不同的大小显示。请查看此文档Supporting Multiple Screens