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 設定了不一樣的字串以及背景顏色
留言列表