2015-08-14 60 views
1

如何居中这三个圆形图像并在其下面设置textView?如何在LinearLayout中放置imageButons并在其下面设置textView?

linearLayout的上下是水平线,其他代码位于ScrollView布局的子RelativeLayout中。

如果需要整个xml文件,告诉我。

Layout

下面是XML代码:

<LinearLayout 
      android:id="@+id/linearLayout" 
      android:layout_marginBottom="24dp" 
      android:layout_marginTop="24dp" 
      android:orientation="horizontal" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/view" > 

     <ImageButton 
      android:id="@+id/Button1" 
      android:layout_width="70dp" 
      android:layout_height="70dp"      
      android:layout_marginTop="16dp" 
      android:layout_weight="1" 
      android:layout_gravity="center_horizontal" 
      android:scaleType="fitStart" 
      android:background="@drawable/circle" 
      android:src="@drawable/ic_horor_filmovi_ikonica" /> 

     <TextView 
      android:id="@+id/ime1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/Button1" 
      android:layout_alignLeft="@+id/Button1" 
      android:layout_alignRight="@+id/Button1" 
      android:text="Ime"/> 

     <ImageButton 
      android:id="@+id/Button2" 
      android:background="@drawable/circle" 
      android:src="@drawable/ic_horor_filmovi_ikonica" 
      android:layout_marginTop="16dp" 
      android:layout_weight="1" 
      android:layout_gravity="center_horizontal"    
      android:scaleType="fitStart" 
      android:layout_width="70dp" 
      android:layout_height="70dp"/> 

     <TextView 
      android:id="@+id/ime2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/Button2" 
      android:layout_alignLeft="@+id/Button2" 
      android:layout_alignRight="@+id/Button2" 
      android:text="Ime"/> 

     <ImageButton 
      android:id="@+id/Button3" 
      android:background="@drawable/circle" 
      android:src="@drawable/ic_horor_filmovi_ikonica" 
      android:layout_marginTop="16dp" 
      android:layout_weight="1"   
      android:layout_gravity="center_horizontal"  
      android:scaleType="fitStart" 
      android:layout_width="70dp" 
      android:layout_height="70dp"/> 

     <TextView 
      android:id="@+id/ime3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/Button3" 
      android:layout_alignLeft="@+id/Button3" 
      android:layout_alignRight="@+id/Button3" 
      android:text="Ime"/> 

    </LinearLayout> 

回答

1

通过将相对布局属性应用到线性布局中,您犯了一个错误。 例如layout_below,layout_alignLeft,layout_alignRight。 达到你想要做什么,最简单的方法是用2线性布局成相对布局根这样的:

<LinearLayout 
    android:id="@+id/linearLayoutButton" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="24dp" 
    android:layout_marginTop="24dp" 
    android:orientation="horizontal"> 

    <ImageButton 
     android:id="@+id/Button1" 
     android:layout_width="70dp" 
     android:layout_height="70dp" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginTop="16dp" 
     android:layout_weight="1" 
     android:background="@drawable/circle" 
     android:scaleType="fitCenter" 
     android:src="@drawable/ic_horor_filmovi_ikonica" /> 


    <ImageButton 
     android:id="@+id/Button2" 
     android:layout_width="70dp" 
     android:layout_height="70dp" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginTop="16dp" 
     android:layout_weight="1" 
     android:background="@drawable/circle" 
     android:scaleType="fitCenter" 
     android:src="@drawable/ic_horor_filmovi_ikonica" /> 


    <ImageButton 
     android:id="@+id/Button3" 
     android:layout_width="70dp" 
     android:layout_height="70dp" 
     android:layout_gravity="center_horizontal" 
     android:layout_marginTop="16dp" 
     android:layout_weight="1" 
     android:background="@drawable/circle" 
     android:scaleType="fitCenter" 
     android:src="@drawable/ic_horor_filmovi_ikonica" /> 

</LinearLayout> 

<LinearLayout 
    android:id="@+id/linearLayoutTextview" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/linearLayoutButton" 
    android:orientation="horizontal"> 

    <TextView 
     android:id="@+id/ime1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:text="Ime" /> 

    <TextView 
     android:id="@+id/ime2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:text="Ime" /> 

    <TextView 
     android:id="@+id/ime3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:text="Ime" /> 
</LinearLayout> 

编辑:从fitStart变化scaleType到fitCenter。

也有另一种解决方案,它具备的优势,以保持按钮的大小是使用嵌套的线性布局:

<LinearLayout 
    android:id="@+id/linearLayoutButton" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:weightSum="3"> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="24dp" 
     android:layout_marginTop="24dp" 
     android:layout_weight="1" 
     android:orientation="vertical"> 

     <ImageButton 
      android:id="@+id/Button1" 
      android:layout_width="70dp" 
      android:layout_height="70dp" 
      android:layout_gravity="center" 
      android:layout_marginTop="16dp" 
      android:background="@drawable/circle" 
      android:scaleType="fitCenter" 
      android:src="@drawable/ic_horor_filmovi_ikonica"/> 

     <TextView 
      android:id="@+id/ime1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:text="Ime" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="24dp" 
     android:layout_marginTop="24dp" 
     android:layout_weight="1" 
     android:orientation="vertical"> 

     <ImageButton 
      android:id="@+id/Button2" 
      android:layout_width="70dp" 
      android:layout_height="70dp" 
      android:layout_gravity="center" 
      android:layout_marginTop="16dp" 
      android:background="@drawable/circle" 
      android:scaleType="fitCenter" 
      android:src="@drawable/ic_horor_filmovi_ikonica"/> 

     <TextView 
      android:id="@+id/ime2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:text="Ime" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="24dp" 
     android:layout_marginTop="24dp" 
     android:layout_weight="1" 
     android:orientation="vertical"> 

     <ImageButton 
      android:id="@+id/Button3" 
      android:layout_width="70dp" 
      android:layout_height="70dp" 
      android:layout_gravity="center" 
      android:layout_marginTop="16dp" 
      android:background="@drawable/circle" 
      android:scaleType="fitCenter" 
      android:src="@drawable/ic_horor_filmovi_ikonica"/> 

     <TextView 
      android:id="@+id/ime3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:text="Ime" /> 
    </LinearLayout> 


</LinearLayout> 
+0

好的。我已经完成了并获得了下面的TextViews,但仍然是圆圈,但在开始时,不在中心。 –

+0

尝试使用scaleType =“fitCenter”而不是“fitStart”。 – xiaomi

+0

没有,他们仍然是在开始。 –

1

1)使用嵌套的LinearLayout具有垂直取向包含图片和文字,并把它添加到外人的LinearLayout。 2)将局外人线性布局的重力设置为中心应该达到你想要的。

我didnot测试它。请让我知道如果不工作,或者我不清楚。

0

你应该改变你的:根的LinearLayout的“Android的宽度= warp_content”(换言之两个LinearLayout的父LinearLayout)设置为“Android:width = match_parent”。如果你想让你的图像按钮放在中心,那么它们的父母视图的大小必须是整个屏幕。

相关问题