2013-02-18 44 views
0

我儘量做到這樣的事:我怎樣才能使這個佈局(包含文字和圖標的按鈕)

enter image description here

到目前爲止我的代碼是:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 

     <Button 
      android:id="@+id/btemail" 
      android:layout_width="130dp" 
      android:layout_height="130dp" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentLeft="true" 
      android:layout_marginBottom="45dp" 
      android:layout_marginLeft="34dp" 
      android:drawableTop="@drawable/mail" 
      android:text="E-mail" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

     <Button 
      android:id="@+id/btcharts" 
      android:layout_width="130dp" 
      android:layout_height="130dp" 
      android:layout_above="@+id/btemail" 
      android:layout_alignLeft="@+id/btemail" 
      android:background="@android:color/transparent" 
      android:drawableTop="@drawable/chart" 
      android:drawablePadding="-35dp" 
      android:text="Charts" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

     <Button 
      android:id="@+id/bthistory" 
      android:layout_width="130dp" 
      android:layout_height="130dp" 
      android:layout_alignBaseline="@+id/btemail" 
      android:layout_alignBottom="@+id/btemail" 
      android:layout_toRightOf="@+id/btemail" 
      android:drawableTop="@drawable/list" 
      android:text="History" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

     <Button 
      android:id="@+id/btimport" 
      android:layout_width="130dp" 
      android:layout_height="130dp" 
      android:layout_alignLeft="@+id/bthistory" 
      android:layout_alignTop="@+id/btcharts" 
      android:drawableTop="@drawable/add" 
      android:text="New Measurement" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

    </RelativeLayout> 

我的看法是這樣的:

enter image description here

可以這樣用relativ完成僅查看還是應該使用gridview?

如果我設置了android:layout_height =「130dp」,但圖標對於不同的屏幕有不同的尺寸「50x50 66x66 98x98 130x130」。對於不同的屏幕會有問題嗎? 有沒有辦法實現它動態?

怎樣把圖標中心垂直和圖表按鈕的水平????因爲現在它是多一點了中心的..

回答

2

我建議你使用RelativeLayout文本和背景和按鈕放置到將被嵌套在它的父TableLayoutGridLayout(在適當的利潤) - RelativeLayout

1

的DP或浸度量是在密度160或MDPI的像素數,所以,你可以在你的佈局文件夾中MDPI像素的大小及比例的其他尺寸如下表:

  • xhdpi:2.0
  • HDPI:1.5
  • MDPI:1.0(基線)
  • LDPI:0.75

有關的詳細信息見thisthis

編輯:我相信做這種佈局的最好方法是讓所有的按鈕都是線性佈局,並且有一個相對佈局作爲根,並且通過重力或者類似的方式來對齊線性佈局。

我的例子:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="42dp" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 

     <Button 
      android:id="@+id/btcharts" 
      android:layout_width="130dp" 
      android:layout_height="130dp" 
      android:drawablePadding="-35dp" 
      android:drawableTop="@drawable/chart" 
      android:text="Charts" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

     <Button 
      android:id="@+id/btimport" 
      android:layout_width="130dp" 
      android:layout_height="130dp" 
      android:drawableTop="@drawable/add" 
      android:text="New Measurement" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp" > 

     <Button 
      android:id="@+id/btemail" 
      android:layout_width="130dp" 
      android:layout_height="130dp" 
      android:drawableTop="@drawable/mail" 
      android:text="E-mail" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

     <Button 
      android:id="@+id/bthistory" 
      android:layout_width="130dp" 
      android:layout_height="130dp" 
      android:drawableTop="@drawable/list" 
      android:text="History" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 
    </LinearLayout> 
</LinearLayout> 

我不知道,這一切都對準,因爲我沒有你的可繪製在這裏,但我能想到的,你可以從這個提高,也是你的「圖表「按鈕是不同的,因爲它具有透明背景。

+0

我都爲不同規模的necesery圖標.. 我只是想完成的2x2按鈕網格狀的圖片... – oikonomopo 2013-02-18 19:21:18

+0

我誤解你的問題,然後,看到我會在做代碼編輯您的案件。 – 2013-02-19 11:31:40

相關問題