欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android實(shí)現(xiàn)九宮格(GridView中各項(xiàng)平分空間)的方法

 更新時(shí)間:2015年06月26日 10:20:28   作者:RobinTang  
這篇文章主要介紹了Android實(shí)現(xiàn)九宮格(GridView中各項(xiàng)平分空間)的方法,涉及Android針對(duì)GridView操作的相關(guān)技巧,需要的朋友可以參考下

本文實(shí)例講述了Android實(shí)現(xiàn)九宮格(GridView中各項(xiàng)平分空間)的方法。分享給大家供大家參考。具體如下:

項(xiàng)目需要做一個(gè)九宮格(也不一定是9的,4宮格、16宮格、4x3宮格。。。),封了 一個(gè)宮格,它能夠根據(jù)為它分配的空間來(lái)自動(dòng)的調(diào)節(jié)宮中各項(xiàng)的尺寸。

從TableLayout集成來(lái)的,因此如果你直接在設(shè)計(jì)器上使用該封裝的話(huà)需要把它自動(dòng)加進(jìn)去的那幾個(gè)TableRow刪除一下。

類(lèi)名為AdvancedGridView,代碼如下:

import android.content.Context; 
import android.util.AttributeSet; 
import android.view.View; 
import android.widget.BaseAdapter; 
import android.widget.Button; 
import android.widget.TableLayout; 
import android.widget.TableRow; 
/** 
 * AdvancedGridView 
 * @author RobinTang 
 * @time 2012-10-15 
 */ 
public class AdvancedGridView extends TableLayout { 
// private static final String tag = "AdvancedGridView"; 
  private int rowNum = 0; // row number 
  private int colNum = 0; // col number 
  private BaseAdapter adapter = null;  
  private Context context = null; 
  public AdvancedGridView(Context context) { 
    super(context); 
    initThis(context, null); 
  } 
  public AdvancedGridView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    initThis(context, attrs); 
  } 
  private void initThis(Context context, AttributeSet attrs) { 
    this.context = context; 
    if (this.getTag() != null) { 
      String atb = (String) this.getTag(); 
      int ix = atb.indexOf(','); 
      if (ix > 0) { 
        rowNum = Integer.parseInt(atb.substring(0, ix)); 
        colNum = Integer.parseInt(atb.substring(ix+1, atb.length())); 
      } 
    } 
    if (rowNum <= 0) 
      rowNum = 3; 
    if (colNum <= 0) 
      colNum = 3; 
    if(this.isInEditMode()){ 
      this.removeAllViews(); 
      for(int y=0; y<rowNum; ++y){ 
        TableRow row = new TableRow(context); 
        row.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT, 1.0f)); 
        for(int x=0; x<colNum; ++x){ 
          View button = new Button(context); 
          row.addView(button, new TableRow.LayoutParams (LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1.0f)); 
        } 
        this.addView(row); 
      } 
    } 
  } 
  public BaseAdapter getAdapter() { 
    return adapter; 
  } 
  public void setAdapter(BaseAdapter adapter) { 
    if(adapter != null){ 
      if(adapter.getCount() < this.rowNum*this.colNum){ 
        throw new IllegalArgumentException("The view count of adapter is less than this gridview's items"); 
      } 
      this.removeAllViews(); 
      for(int y=0; y<rowNum; ++y){ 
        TableRow row = new TableRow(context); 
        row.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT, 1.0f)); 
        for(int x=0; x<colNum; ++x){ 
          View view = adapter.getView(y*colNum+x, this, row); 
          row.addView(view, new TableRow.LayoutParams (LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1.0f)); 
        } 
        this.addView(row); 
      } 
    } 
    this.adapter = adapter; 
  } 
  public int getRowNum() { 
    return rowNum; 
  } 
  public void setRowNum(int rowNum) { 
    this.rowNum = rowNum; 
  } 
  public int getColNum() { 
    return colNum; 
  } 
  public void setColNum(int colNum) { 
    this.colNum = colNum; 
  } 
}

如果你想在設(shè)計(jì)階段就看到宮格效果的話(huà),你可以在該空間的Tag屬性上設(shè)置行列個(gè)數(shù)。比如我想看到3x3的宮格樣子的話(huà)就設(shè)置成"3,3",如下圖,當(dāng)然你也可以在代碼中使用setRowNum()和setColNum()來(lái)進(jìn)行設(shè)置,但是請(qǐng)?jiān)谠O(shè)置適配器前調(diào)用這兩個(gè)方法。

希望本文所述對(duì)大家的Android程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 詳解Android應(yīng)用中preference首選項(xiàng)的編寫(xiě)方法

    詳解Android應(yīng)用中preference首選項(xiàng)的編寫(xiě)方法

    這篇文章主要介紹了Android應(yīng)用中preference首選項(xiàng)的編寫(xiě)方法,或許Apple將其翻譯為'偏好設(shè)置'更直觀些,即用戶(hù)對(duì)應(yīng)用的一些個(gè)性化調(diào)整菜單,需要的朋友可以參考下
    2016-04-04
  • Android ellipsize的小問(wèn)題介紹

    Android ellipsize的小問(wèn)題介紹

    使用TextView的時(shí)候,需要長(zhǎng)度過(guò)長(zhǎng)自動(dòng)顯示省略號(hào),android里有原生的支持,本文將針對(duì)此問(wèn)題進(jìn)行深入剖析,需要的朋友可以參考
    2012-11-11
  • Android實(shí)現(xiàn)圖片查看功能

    Android實(shí)現(xiàn)圖片查看功能

    這篇文章主要介紹了Android如何實(shí)現(xiàn)圖片查看功能,幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下
    2021-04-04
  • Android AIDL實(shí)現(xiàn)與服務(wù)相互調(diào)用方式

    Android AIDL實(shí)現(xiàn)與服務(wù)相互調(diào)用方式

    這篇文章主要介紹了Android AIDL實(shí)現(xiàn)與服務(wù)相互調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • SurfaceView開(kāi)發(fā)[捉小豬]手機(jī)游戲 (一)

    SurfaceView開(kāi)發(fā)[捉小豬]手機(jī)游戲 (一)

    這篇文章主要介紹了用SurfaceView開(kāi)發(fā)[捉小豬]手機(jī)游戲 (一)本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Android自定義控件的創(chuàng)建方法

    Android自定義控件的創(chuàng)建方法

    這篇文章主要為大家詳細(xì)介紹了Android自定義控件的創(chuàng)建方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Android開(kāi)發(fā)中如何去掉app標(biāo)題欄的實(shí)現(xiàn)

    Android開(kāi)發(fā)中如何去掉app標(biāo)題欄的實(shí)現(xiàn)

    這篇文章主要介紹了Android開(kāi)發(fā)中如何去掉app標(biāo)題欄的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Android自定義輸入法軟鍵盤(pán)

    Android自定義輸入法軟鍵盤(pán)

    這篇文章主要為大家詳細(xì)介紹了Android自定義輸入法軟鍵盤(pán),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Android 實(shí)現(xiàn)旋轉(zhuǎn)木馬的音樂(lè)效果

    Android 實(shí)現(xiàn)旋轉(zhuǎn)木馬的音樂(lè)效果

    大家一定在百度音樂(lè)上在線聽(tīng)過(guò)歌,有沒(méi)有注意到那個(gè)旋轉(zhuǎn)的唱片,本篇文章主要介紹在Android上如何實(shí)現(xiàn)這樣的功能,有需要的小伙伴可以參考下
    2016-07-07
  • Android動(dòng)態(tài)添加設(shè)置布局與控件的方法

    Android動(dòng)態(tài)添加設(shè)置布局與控件的方法

    這篇文章主要介紹了Android動(dòng)態(tài)添加設(shè)置布局與控件的方法,涉及Android中布局與控件的相關(guān)操作技巧,需要的朋友可以參考下
    2016-01-01

最新評(píng)論