Android: изображение и значок кнопки текста - PullRequest
1 голос
/ 01 августа 2011

У меня проблемы с компоновкой панели навигации.Я надеялся, что иконка с текстом под ней будет по центру кнопки.В настоящее время, когда значок нарисован, он выталкивает текст со страницы.Единственный способ вернуть его - использовать android: drawablePadding = "" (из здесь ), используя отрицательное значение, но это выглядит так:

enter image description here

Мой XML выглядит так:

<LinearLayout android:id="@+id/navbar"
    android:layout_alignParentBottom="true" android:gravity="center"
    android:layout_width="fill_parent" android:background="#001"
    android:layout_height="60dip" android:layout_weight="1"
    android:orientation="horizontal">

    <Button android:layout_height="fill_parent" android:id="@+id/navhomebtn" android:enabled="false" 
        android:textColor="#FFF" android:background="@drawable/navbuttonselected"   android:drawableTop="@drawable/homeicon" 
         android:drawablePadding="-40dip"
        android:text="Home" android:layout_weight=".25" android:layout_width="0dip" />

    <Button android:layout_height="fill_parent" android:id="@+id/navsearchbtn"
        android:textColor="#FFF" android:background="@drawable/navbuttons" 
        android:text="Search" android:layout_weight=".25"
        android:layout_width="0dip" />

    <Button android:layout_height="fill_parent" android:id="@+id/navfavbtn"
        android:textColor="#FFF" android:background="@drawable/navbuttons"
        android:text="Favorites" android:layout_weight=".25"
        android:layout_width="0dip" />
    <Button android:layout_height="fill_parent" android:id="@+id/navlistbtn"
        android:textColor="#FFF" android:background="@drawable/navbuttons"
        android:text="Loans" android:layout_weight=".25"
        android:layout_width="0dip" />

</LinearLayout>

Ответы [ 2 ]

3 голосов
/ 01 августа 2011

То, как выглядят ваши кнопки, вы также можете использовать относительный макет, содержащий текстовое представление и изображение.Затем установите для атрибута относительных кликов относительное значение true, а для атрибута фона - свои кнопки навигации.

Другой способ - использовать атрибуты drawableLeft / Right / Top / Bottom, например:

<Button 
    android:id="@+id/home_button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:drawableLeft="@drawable/home_icon"
    android:background="@drawable/nav_background"
    android:text="Home"/> 
2 голосов
/ 01 августа 2011

Чтобы установить текст и изображение для кнопки, вы можете сделать так:

   <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <Button
            android:text="Button"
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableTop="@drawable/icon"></Button>
    </LinearLayout>

Надеюсь, это вам поможет!

...