Различно поведение от изображения на бутони

След предишния ми въпрос, Поставяне на три бутона и фоново изображение в 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>

Бих искал и трите изображения да започват от лявата граница, без поле.

Благодаря ти.


person novato    schedule 02.12.2014    source източник
comment
трябва да има празно пространство във вашите изображения.   -  person Murtaza Khursheed Hussain    schedule 02.12.2014
comment
уверете се, че вашето изображение не съдържа бяло пространство на фона, както каза @MurtazaHussain, и друго нещо е, че използвайте linearlayout със свойство тегло според вашите нужди, тук изглежда, че теглото, свързано с изчислението ви, не е наред, задайте теглото им правилно. това решава вашето проблем 100%.   -  person Radhey    schedule 02.12.2014


Отговори (2)


Второто ви изображение е свързано отляво без поле, защото този ред:

android:background="@color/fondo"
person Miki Franko    schedule 02.12.2014

Вместо да имате бутони с drawableLeft, можете да опитате да използвате LinearLayouts като бутони за по-голяма гъвкавост при избора на това как да се показват вашите изображения и текст, като така:

 <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, за да подравните текст отдясно на ImageViews, както е описано в Подравняване на TextView и ImageView вътре в LinearLayout, приет отговор

person PattaFeuFeu    schedule 02.12.2014