按钮图像的不同行为

时间:2014-12-02 07:15:42

标签: android android-layout android-button

按照我之前的问题Fitting three buttons and a background image in android,我现在有了我想要的东西,但现在有一个我不明白的小问题。 有三个按钮,每个按钮带有一个图像,三个图像具有相同的大小,但它们的显示方式不同。图像2从左边框开始,但图像1和3在左侧有一个边距。

enter image description here

从XML文件中,我看不出原因:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:weightSum="4"
    >

    <ImageView
        android:id="@+id/ImageView01"
        android:layout_width="match_parent"
        android:layout_height="5dp"
        android:layout_weight="0.5"
        android:scaleType="fitXY"
        android:src="@drawable/sector1" />

    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:drawableLeft="@drawable/agenda_izq"
        android:maxLines="1"
        android:text="Agenda" />

    <Button
        android:id="@+id/button2"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="@color/fondo"
        android:drawableLeft="@drawable/actividades_izq"
        android:maxLines="1"
        android:text="Actividades" />

    <Button
        android:id="@+id/button3"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:drawableLeft="@drawable/suscribete_izq"
        android:gravity="left|center_vertical|center_horizontal"
        android:maxLines="2"
        android:text="Recibir Información de Juventud" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="5dp"
        android:layout_weight="0.5"
        android:scaleType="fitXY"
        android:src="@drawable/sector3" />

</LinearLayout>

我希望所有三张图片都从左边框开始,没有任何边距。

谢谢。

2 个答案:

答案 0 :(得分:1)

您可能希望使用drawableLeft作为按钮尝试提高选择图像和文本显示方式的灵活性,而不是使用带有LinearLayout的按钮,如下所示:

 <LinearLayout
       android:id="@+id/button2"
       android:layout_width="match_parent"
       android:layout_height="0dp"
       android:layout_weight="1"
       android:minHeight="48dp">

    <ImageView
        android:id="@+id/imageViewForButton2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scaleType="fitXY"
        android:src="@drawable/actividades_izg" />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/fondo"
        android:maxLines="1"
        android:text="Actividades" />
 </LinearLayout>

然后,您将拥有上述LinearLayouts中的一个,其中包含ImageViewTextView每个“按钮”。要参考它,例如在onCreateView中,您将使用:

 LinearLayout button1 = (LinearLayout) view.findViewById(R.id.button2);

您可以考虑使用LinearLayout而不是RelativeLayout,以便将{{1>}的文本与<{1}}对齐,如ImageView中所述3}}

答案 1 :(得分:1)

您的第二张图片链接到左边没有边距,因为该行:

android:background="@color/fondo"