GridLayout 簡單範例

Layout XML:

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gridview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:numColumns="auto_fit"
    android:verticalSpacing="20px"
    android:horizontalSpacing="20px"
    android:columnWidth="50px"
    android:stretchMode="columnWidth"
    android:gravity="center"
/>

 

 

 

 

 

 

 

 

Java source:

package com.example.GridLayoutSample;

import android.app.Activity;
import android.os.Bundle;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.TextView;
import android.view.Gravity;
import android.graphics.Typeface;
import android.graphics.Color;

public class GridLayoutSample extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        GridView gridview = (GridView) findViewById(R.id.gridview);
        gridview.setAdapter(new SampleAdapter(this));
    }
    public class SampleAdapter extends BaseAdapter {
        private Context mContext;
        private String[] texts = {"Text 1","Text 2","Text 3","Text 4",
                                  "Text 5","Text 6","Text 7","Text 8"};
        private int[] textColor = {android.graphics.Color.YELLOW,
                                   android.graphics.Color.BLUE,
                                   android.graphics.Color.RED,
                                   android.graphics.Color.GREEN};
       
        private SampleAdapter (Context c){
            mContext = c;
        }
       
        public int getCount(){
            return 8;
        }
       
        public Object getItem(int position){
            return null;
        }
       
        public long getItemId(int position){
            return 0;
        }
       
        public View getView(int position, View convertView, ViewGroup parent){
            TextView tv;
           
            if (convertView == null){
                tv = new TextView(mContext);
                tv.setLayoutParams(new GridView.LayoutParams(85,85));
                tv.setGravity(Gravity.CENTER_VERTICAL|Gravity.CENTER_HORIZONTAL);
                tv.setTextColor(android.graphics.Color.BLACK);
                tv.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));               
                tv.setBackgroundColor(textColor[position%4]);
            }
            else{
                tv = (TextView)convertView;
            }
            tv.setText(texts[position]);
            return tv;
        }
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

因為 SampleAdapter 繼承了 BaseAdapter, 所以必須要實作 getCount, getItem, getItemId,

getView 等 function, 因為 BaseAdapter 裡面定義了這些 function interface.

在 getView 裡面設定了 8 個 TextView, 針對每個不同的 Text 設定了不一樣的字串以及背景顏色

GridLayout 

arrow
arrow
    全站熱搜

    tixirene 發表在 痞客邦 留言(0) 人氣()