2011-04-18 42 views
0

我有一個GridView顯示按鈕,得到一個數組的內容,請參閱以下內容:GridView的按鈕配置

XML:

<LinearLayout 
    android:background="@raw/br_poster_dark" 
    android:orientation="vertical"  
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent" 
    android:layout_gravity="center" 
    android:padding="30dip"  > 



      <GridView android:id="@+id/brgrid" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:padding="5dp" 
       android:columnWidth="90dp" 
       android:rowHeight="90dp" 
       android:numColumns="3" 
       android:gravity="center" 
       android:textColor="#ffffff" 
       /> 

</LinearLayout> 

以及按鈕java的:

public View getView(int position, View convertView, ViewGroup parent) { 
    try { 
     final Sample sample = board.getSamples().get(position); 

     if (sample != null) { 
      Button button = new Button(context); 
      button.setText(sample.getName()); 


      button.setBackgroundResource(R.drawable.roundedbutton); 

正如你所看到的我有一個自定義的背景(透明漸變和圓角),這很好,但我很難改變按鈕的其他屬性,因爲大部分代碼都會使用Ÿ進入XML「按鈕」下:

例如,改變文本的顏色不工作時,GridView XML在不斷變化的行/列大小沒有效果...

我也想讓它顯示一個均勻間距的網格,其中包含統一的按鈕大小,而不是將傳遞給按鈕的文本包裝起來,並將它們填充到屏幕的頂部。

有沒有一種方法可以創建一個xml按鈕供Gridview使用?

在此先感謝。

回答

1

我找到了一種方法使用密度天平設置按鈕的文字大小和佈局的按鈕設置文本:

button.setLayoutParams(new GridView.LayoutParams((int)(80 * densityScale + 0.5f), (int)(50 * densityScale + 0.5f))); 

button.setTextSize(12); 
0

我不明白需要在代碼中聲明按鈕。 把它放進去的xml並檢索與finViewById()

希望這有助於有點

+0

我明白你在做什麼,這也意味着改變我的數組播放相應的聲音文件的方式。我認爲可能有一種方法可以在java中實現,以節省我的麻煩。我需要的只是改變重量和文字。謝謝您的幫助 – jimbo82 2011-04-18 22:26:24