2016-04-10 49 views
-1

我想我的按鈕看起來完全像this,但我無法弄清楚如何做到這一點。我曾嘗試在Google的不同地方進行調查,但沒有一種方式就像我想要的那樣。我想讓按鈕有圖像,我也想知道如何在不同的屏幕尺寸上調整這些圖像的大小。使4個按鈕每個屏幕的四分之一

這是我現在的layout_main.xml。

<?xml version="1.0" encoding="utf-8"?> 
<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" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.mudd.devin.drivenow.MainActivity" 
    android:weightSum="2"> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="New Button" 
     android:id="@+id/button3" 
     android:layout_marginTop="199dp"> 

    </Button> 

    <Button 

     android:layout_width="wrap_content" 
     android:id="@+id/button1" 
     android:layout_gravity="center" 
     android:paddingLeft="20dp" 
     android:paddingRight="20dp" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="@dimen/activity_vertical_margin" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="New Button" 
     android:id="@+id/button2" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" /> 
</RelativeLayout> 
+0

使用具有相同'android:layout_weight'值的嵌套'LinearLayout'小部件。或者,使用Android支持包中的'PercentFrameLayout' /'PercentRelativeLayout'。 – CommonsWare

回答

0

你有3種選擇,難辦第一:

  1. RelativeLayout在其中心View

放一個View在RelativeLayout的中心和對準它周圍的所有其它視圖(toLeftOftoRightOf ...)

  • 使用嵌套LinearLayout與權重。
  • 使用一個LinearLayout橫一縱,給你的意見和寬度分別0dp高度和設置的所有weight="1"

  • 編寫自定義佈局/ ViewGroup
  • 剛寫一個簡單的佈局,在onLayout分配你的意見等於寬度&高度。這需要更多的知識,但如果正確完成,則是最有效的解決方案。

    0

    您可以使用layout_weight propety從屏幕上設置precent的權重來查看。

    例如:enter image description here

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    tools:context=".MainActivity" > 
    
    <LinearLayout 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_weight="1" 
        android:orientation="horizontal" > 
    
        <Button 
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:text="1" > 
        </Button> 
    
        <Button 
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:text="2" > 
        </Button> 
    </LinearLayout> 
    
    <LinearLayout 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_weight="1" 
        android:orientation="horizontal" > 
    
        <Button 
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:text="3" > 
        </Button> 
    
        <Button 
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent" 
         android:layout_weight="1" 
         android:text="4" > 
        </Button> 
    </LinearLayout> 
    

    +0

    我會如何讓他們全部接觸?我的意思是通過縮小他們之間的差距。 – deeup511

    +0

    您可以使用邊距或填充以在視圖之間進行間隔。 –

    0

    有點晚了,但你可以只使用一個RelativeLayout的,把中心的虛擬對象,並設置圍繞中心點元素的其餘部分。

    相關問題