将图像添加到按钮而不调整大小

时间:2013-08-16 17:28:38

标签: android

我在按钮上添加了一个名为“star”的图像,图片出现了,但它使按钮变大了。

<Button
android:id="@+id/latest_photoB"
android:layout_height="87dp"
android:layout_weight="1"
android:background="#dcdcdc"
android:drawableTop="@drawable/star"
android:text="Latest Photos"
android:textSize="10dp"
android:textColor="#000000"  />

我尝试了许多不同的方法,例如将其设为imagebutton

我尝试了android:background = image,但没有任何效果。如何添加图片并保持相同的尺寸?

5 个答案:

答案 0 :(得分:1)

如果您希望按钮具有图像背景,请执行以下操作:

<Button
    android:id="@+id/latest_photoB"
    android:layout_height="87dp"
    android:layout_width="87dp"
    android:background="@drawable/star"
    android:text="Latest Photos"
    android:textSize="10dp"
    android:textColor="#000000"  />

如果按钮应该是固定大小,则不需要layout_weight。此外,您尚未定义layout_weight属性。我已将其设为87dp。根据需要进行更改。

答案 1 :(得分:0)

也许您正在寻找android:setAdjustViewBounds = "false"

答案 2 :(得分:0)

按钮的默认背景可使用所谓的九补丁。它会根据按钮内容的大小调整自己的大小。按钮是一个特殊的TextView,它可以在其4个边的每一边都附有drawable(复合drawable)。 text和复合drawable构成Button的内容,这就是按钮调整大小的原因。

复合drawables是对视图层次结构的优化,因为它减少了一个非常常见场景的视图数量,但听起来你想要一个ImageView +一个按钮,其中ImageView的响应方式与点击时的按钮相同在它上面?

在这种情况下,将按钮包含在其中包含ImageView的布局中,并在布局上设置onClickListener而不是按钮

答案 3 :(得分:0)

摆脱:

android:layout_weight="1"

而是为按钮定义特定尺寸:

android:layout_height="87dp"
android:layout_width="50dp"

希望这有帮助。

答案 4 :(得分:0)

如果您不设置Button的高度和宽度,Android Button将包装内容(与图像大小相同)。试试这种方式

<Button
android:id="@+id/latest_photoB"
android:layout_height="87dp"
android:layout_width="87dp"
android:layout_weight="1"
android:background="@drawable/star"
android:text="Latest Photos"
android:textSize="10dp"
android:textColor="#000000"  />