按照我之前的问题Fitting three buttons and a background image in android,我现在有了我想要的东西,但现在有一个我不明白的小问题。 有三个按钮,每个按钮带有一个图像,三个图像具有相同的大小,但它们的显示方式不同。图像2从左边框开始,但图像1和3在左侧有一个边距。
从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>
我希望所有三张图片都从左边框开始,没有任何边距。
谢谢。
答案 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
中的一个,其中包含ImageView
和TextView
每个“按钮”。要参考它,例如在onCreateView
中,您将使用:
LinearLayout button1 = (LinearLayout) view.findViewById(R.id.button2);
您可以考虑使用LinearLayout
而不是RelativeLayout
,以便将{{1>}的文本与<{1}}对齐,如ImageView
中所述3}}
答案 1 :(得分:1)
您的第二张图片链接到左边没有边距,因为该行:
android:background="@color/fondo"