Отличие от изображений кнопок

Следуя моему предыдущему вопросу, Установка трех кнопок и фонового изображения в 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 вы можете попробовать использовать 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 для выравнивания текста справа от ImageView, как описано в Выравнивание TextView и ImageView внутри LinearLayout, принятый ответ

person PattaFeuFeu    schedule 02.12.2014