2013-03-07 12 views
15

Voglio posizionare l'immagine al centro e il testo appena sotto di esso in un pulsante, ho provato a impostare android: gravità ma non è stato possibile impostarlo correttamente, ecco l'immagine allegata:Pulsante Android Posiziona l'immagine al centro e il testo in basso

enter image description here

di seguito è il mio xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:paddingLeft="10.0dip" 
    android:paddingTop="10.0dip" 
    android:paddingRight="10.0dip" 
    android:paddingBottom="10.0dip"  
    android:background="@drawable/background_img" 
    > 

    <LinearLayout 
     android:layout_height="0dp" 
     android:layout_width="match_parent" 
     android:layout_weight="1" 
     android:orientation="horizontal" 
     android:paddingLeft="10.0dip" 
     android:paddingTop="10.0dip" 
     android:paddingRight="10.0dip" 
     android:paddingBottom="10.0dip"   
     > 

     <Button   
      android:layout_height="match_parent" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:id="@+id/button_listen" 
      android:text="@string/listen" 
      android:drawableTop="@drawable/listen_btn" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="10dp" 
      android:layout_marginTop="10dp" 
      android:layout_marginBottom="10dp"  
      android:layout_gravity="center" 
      /> 
     <Button 
      android:layout_height="match_parent" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:id="@+id/button_gallery" 
      android:text="@string/gallery" 
      android:drawableTop="@drawable/gallery_btn" 
      android:layout_marginLeft="10dp"  
      android:layout_marginRight="10dp"  
      android:layout_marginTop="10dp"  
      android:layout_marginBottom="10dp" 
      android:layout_gravity="center" 
      /> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_height="0dp" 
     android:layout_width="match_parent" 
     android:layout_weight="1" 
     android:orientation="horizontal" 
     android:paddingLeft="10.0dip" 
     android:paddingTop="10.0dip" 
     android:paddingRight="10.0dip" 
     android:paddingBottom="10.0dip"    
     > 

     <Button 
      android:layout_height="match_parent" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:id="@+id/button_play" 
      android:text="@string/play"     
      android:drawableTop="@drawable/play_btn" 
      android:layout_marginLeft="10dp" 
      android:layout_gravity="center" 
      android:layout_marginRight="10dp" 
      android:layout_marginTop="10dp" 
      android:layout_marginBottom="10dp" 
      /> 
     <Button 
      android:layout_height="match_parent" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:id="@+id/button_find" 
      android:text="@string/find" 
      android:drawableTop="@drawable/test_btn" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="10dp" 
      android:layout_marginTop="10dp"  
      android:layout_marginBottom="10dp" 
      android:layout_gravity="center" 
      />   
    </LinearLayout> 
</LinearLayout> 

Qual è il modo corretto per centrare l'immagine e il testo sotto di essa?

Molte grazie in anticipo.

+0

Utilizzare gravità = center – Pragnani

risposta

18

Prova questa il suo lavoro per me

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity" > 
<Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="151dp" 
     android:onClick="onClick" 
     android:drawableTop="@drawable/ic_launcher" 
     android:text="Button" /> 
</RelativeLayout> 
+0

lo stesso per tutti e 4 i pulsanti? – RDX

+0

ho provato per uno funziona così funzionerà per tutti i 4 a meno che non ci sia qualcos'altro sbagliato – DjHacktorReborn

0

ho seguito i commenti DjHacktorReborn e ha reso il layout, ecco il congelato uno

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/background_img" 
    android:orientation="vertical" > 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:orientation="vertical" 
     android:weightSum="10" >  
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="4.1" 
      android:orientation="vertical" > 
     </LinearLayout>   
     <TableLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="2" 
       android:orientation="horizontal" 
       android:stretchColumns="*" >  
       <TableRow android:layout_weight="1" > 
         <RelativeLayout 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" > 

         <Button 
          android:id="@+id/button_listen" 
          android:layout_width="match_parent" 
          android:layout_height="match_parent" 
          android:layout_centerInParent="true" 
          android:background="@drawable/main_list" 

          android:paddingTop="90dp" 



          android:text="@string/listen" 
          android:textStyle="bold" 
          android:textColor="#FFFFFF" /> 

         <ImageView 
          android:id="@+id/main_icon_content_image_view" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:layout_centerInParent="true" 
          android:src="@drawable/listen_btn" /> 
        </RelativeLayout> 
        <RelativeLayout 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" > 

         <Button 
          android:id="@+id/button_gallery" 
          android:layout_width="match_parent" 
          android:layout_height="match_parent" 
          android:background="@drawable/main_list" 

          android:paddingTop="90dp" 


          android:text="@string/gallery" 
          android:textStyle="bold" 
          android:textColor="#FFFFFF" /> 

         <ImageView 
          android:id="@+id/main_icon_schedule_image_view" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:layout_centerInParent="true" 
          android:src="@drawable/gallery_btn" /> 
        </RelativeLayout> 
         </TableRow> 
         <TableRow android:layout_weight="1" > 

        <RelativeLayout 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" > 

         <Button 
          android:id="@+id/button_play" 
          android:layout_width="match_parent" 
          android:layout_height="match_parent" 
          android:background="@drawable/main_list" 
          android:ellipsize="marquee" 

          android:paddingTop="90dp" 


          android:text="@string/play" 
          android:textStyle="bold" 
          android:textColor="#FFFFFF" 
          /> 

         <ImageView 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:layout_centerInParent="true" 
          android:src="@drawable/play_btn" /> 
        </RelativeLayout> 

        <RelativeLayout 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" > 

         <Button 
          android:id="@+id/button_find" 
          android:layout_width="match_parent" 
          android:layout_height="match_parent" 
          android:background="@drawable/main_list" 

          android:paddingTop="90dp" 


          android:text="@string/find" 
          android:textStyle="bold" 
          android:textColor="#FFFFFF" /> 

         <ImageView 

          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:layout_centerInParent="true" 
          android:src="@drawable/test_btn" /> 
        </RelativeLayout> 


       </TableRow> 
    </TableLayout>      
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="4.1" 
      android:orientation="vertical" > 
     </LinearLayout>   
</LinearLayout> 
</LinearLayout> 

Ecco il risultato aggiornato

enter image description here

Grazie per i suggerimenti

2

Prova cambiare il pulsante per LinearLayout e usare lo stesso onclicklistener su fakebutton

<LinearLayout 
     android:id="@+id/fakeButton" 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:gravity="center_vertical|center_horizontal" 
     android:orientation="vertical" > 

     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/icon_big_evento" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/menu_about" /> 
    </LinearLayout> 
Problemi correlati