2011-12-19 11 views
7

Robię projekt, w którym chcę ustawić obraz w środku. Używam TableLayout i chcę ustawić ten obraz w FrameLayout. Jeśli masz jakiś pomysł, proszę, zasugeruj mi. To bardzo pilne. Dziękuję wszystkim. Tu jest mój kodu:Jak ustawić obraz na środku w FrameLayout

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="match_parent" 
android:shrinkColumns="*" 
android:stretchColumns="*" > 

     <FrameLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
      android:layout_gravity="center" 
      android:scaleType="center" 
     > 

     <com.nexbits.digitechi.DrawCanvas 
     android:id="@+id/SurfaceView" 

     android:layout_width="wrap_content" 

     android:layout_height="wrap_content" 

     /> 


    </FrameLayout> 

    <TableRow 

    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:gravity="center_horizontal"> 


    <ImageButton 
     android:id="@+id/imageButton5" 

     android:layout_weight="1" 
     android:padding="20dip" 
     android:layout_gravity="center_horizontal" 
     android:onClick="video" 
     android:src="@drawable/ic_webcamera" /> 

    <ImageButton 
     android:id="@+id/imageButton3" 
     android:layout_weight="1" 
     android:layout_gravity="center_horizontal" 

     android:padding="20dip" 
     android:src="@drawable/ic_twitter64" /> 

    <ImageButton 
     android:id="@+id/imageButton2" 

     android:layout_weight="1" 
     android:padding="20dip" 
     android:layout_gravity="center_horizontal" 

     android:src="@drawable/ic_brightness64" /> 

     <ImageButton 
      android:id="@+id/imageButton4" 
      android:layout_weight="1" 
      android:padding="20dip" 
      android:layout_gravity="center_horizontal" 
      android:src="@drawable/microscope" /> 
     </TableRow> 
     </TableLayout> 

Odpowiedz

13

Użyj tej linii w układzie ramki:

android:layout_gravity="center_vertical|center_horizontal" 
android:foregroundGravity="center" 

<com.nexbits.digitechi.DrawCanvas 
    android:id="@+id/SurfaceView" 
    android:layout_gravity="center_vertical|center_horizontal" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 
+1

To linia nie robi nic w FrameLayout. – Patrick

+0

@Patrick próbowałeś z Androidem: foregroundGravity? pokaż mi swój kod. –

+0

Dzięki za odpowiedź. Wkleiłem go tutaj: http://pastebin.com/DCyTwRpP – Patrick

-5

Próbowałeś to:

<FrameLayout 
     android:gravity="center" 
     android:background="@drawable/bg" 
> 

gdzie BG jest obraz w odkształcalne-hdpi/drawable-mdpi itd. Może to być bg.png/bg.jpg itp.

Jeśli chcesz ustawić obraz wewnątrz framLayout w środku, spróbuj jak następuje ing.

<com.nexbits.digitechi.DrawCanvas 
     android:id="@+id/SurfaceView" 

     android:layout_width="wrap_content" 
     android:gravity="center_vertical" or android:gravity="center_horizontal" 

     android:layout_height="wrap_content" 

    /> 


</FrameLayout> 
+2

nie ma grawitacji dla FrameLayout –

3

ja osiągnąć dodając do dziecka (coś w układzie ramek)

android:layout_gravity="center" 
Powiązane problemy