2011-08-01 107 views
1

我遇到了導航欄的佈局問題。我希望有一個圖標,下面有一個文字,全部集中在按鈕中。目前,當圖標被繪製時,會將文本從頁面中移出。使用負值drawablePadding =「」(從here),但它看起來是這樣的:只有這樣,才能使用Android的拿回來就是Android:圖片按鈕圖標和文字

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> 
+0

就失去了所有的額外參數(layout_weight,填充,背景),直到一切都顯示正確。然後開始逐步添加參數bacy,你會發現問題。只是測試了帶有文本和背景的按鈕正確地對圖像進行了中心定位,所以問題必須在某處額外的參數中隱藏。 –

回答

3

按鈕的樣子你可能會使用包含textview和imageview的相關佈局。然後將relativelayouts clickable屬性設置爲true,並將背景屬性設置爲navbuttons可繪製的。

另一種方法是使用drawableLeft /右/上/下屬性是這樣的:

<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"/> 
+0

謝謝,我沒有想到,但它是一個很好的工作:) – Nick

2

要設置按鈕的文字和圖像,你可以這樣做:

<?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> 

希望,它可以幫助你!