天天看点

android用户界面-组件Widget-网格视图GridView

GridView按照行列的方式来显示内容。一般适合显示图标。图片等内容,主要用于设置Adapter。

通过基础类BaseAdapter类,重写getView()方法来设置图片显示格式。

/Chapter04_UI_GridView01/src/com/amaker/test/MainActivity.java

代码  

package com.amaker.test;  

import android.app.Activity;  

import android.content.Context;  

import android.os.Bundle;  

import android.view.View;  

import android.view.ViewGroup;  

import android.widget.BaseAdapter;  

import android.widget.GridView;  

import android.widget.ImageView;  

public class MainActivity extends Activity {  

    private GridView gv;  

    @Override 

    public void onCreate(Bundle savedInstanceState) {  

        super.onCreate(savedInstanceState);  

        setContentView(R.layout.main);  

        gv = (GridView)findViewById(R.id.GridView01);  

        gv.setNumColumns(4);  

        // gv.setNumColumns(3);  

        // String[] strs = {"a","a1","a2","b","b1","b2","c","c1","c2"};  

        // ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_gallery_item,strs);  

        gv.setAdapter(new MyAdapter(this));  

    }  

    class MyAdapter extends BaseAdapter{  

        private Integer[] imgs = {  

                R.drawable.gallery_photo_1,  

                R.drawable.gallery_photo_2,  

                R.drawable.gallery_photo_3,  

                R.drawable.gallery_photo_4,  

                R.drawable.gallery_photo_5,  

                R.drawable.gallery_photo_6,  

                R.drawable.gallery_photo_7,  

                R.drawable.gallery_photo_8,  

                R.drawable.gallery_photo_8  

        };  

        Context context;  

        MyAdapter(Context context){  

            this.context = context;  

        }  

        public int getCount() {  

            return imgs.length;  

        public Object getItem(int item) {  

            return item;  

        public long getItemId(int id) {  

            return id;  

        public View getView(int position, View convertView, ViewGroup parent) {  

             ImageView imageView;  

                if (convertView == null) {  

                    imageView = new ImageView(context);  

                    imageView.setLayoutParams(new GridView.LayoutParams(45, 45));  

                    imageView.setAdjustViewBounds(false);  

                    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);  

                    imageView.setPadding(8, 8, 8, 8);  

                } else {  

                    imageView = (ImageView) convertView;  

                }  

                imageView.setImageResource(imgs[position]);  

                return imageView;  

本文转自linzheng 51CTO博客,原文链接:http://blog.51cto.com/linzheng/1080690

继续阅读