GridView

GridView(網格視圖)是按照行列的方式來顯示內容的,一般用於顯示圖片,圖片等內容,比如實現九宮格圖,用GridView是首選,也是最簡單的。主要用於設置Adapter。
GridView常用的XML屬性:

屬性名稱

描述

android:columnWidth

設置列的寬度。

android:gravity

設置此組件中的內容在組件中的位置。可選的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical可以多選,用“|”分開。

android:horizontalSpacing

兩列之間的間距。

android:numColumns

設置列數。

android:stretchMode

縮放模式。

android:verticalSpacing

兩行之間的間距。

這裏寫圖片描述
LayoutResource

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <GridView
        android:id="@+id/grideview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numColumns="3"></GridView>

</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ImageView
        android:id="@+id/imageview"
        android:layout_width="100dp"
        android:layout_height="100dp" />
    <TextView
        android:layout_centerHorizontal="true"
        android:id="@+id/textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="水果名"
        android:layout_below="@id/imageview"
        android:gravity="center"/>

</RelativeLayout>

Fruit類

public class Fruits  {
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getImg() {
        return img;
    }

    public void setImg(int img) {
        this.img = img;
    }

    private String name;
    private int img;

    public Fruits(String name, int img) {
        this.name = name;
        this.img = img;
    }
}

FruitAdapter

package com.example.administrator.mygridview;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.List;

/**
 * Created by Administrator on 2015/8/26.
 */
public class FruitsAdapter extends BaseAdapter {
    private List<Fruits> fruits;
    private LayoutInflater inflater;

    public FruitsAdapter(List<Fruits> fruits, LayoutInflater inflater) {
        this.fruits = fruits;
        this.inflater = inflater;
    }

    @Override
    public int getCount() {
        return fruits.size();
    }

    @Override
    public Object getItem(int position) {
        return position;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        Fruits fruit=fruits.get(position);
        ViewHolder vh=null;
        if(convertView==null){
            convertView=inflater.inflate(R.layout.grideview_item,null);
         vh=new ViewHolder();
            vh.imageView= (ImageView) convertView.findViewById(R.id.imageview);
            vh.textView= (TextView) convertView.findViewById(R.id.textview);
            convertView.setTag(vh);
        }else {
            vh = (ViewHolder) convertView.getTag();
        }
        vh.imageView.setImageResource(fruit.getImg());
        vh.textView.setText(fruit.getName());
        return convertView;
    }
    class ViewHolder{
        private TextView textView;
        private ImageView imageView;
    }
}

MainActivity

package com.example.administrator.mygridview;

import android.app.Activity;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Adapter;
import android.widget.GridView;

import java.util.ArrayList;
import java.util.List;


public class MainActivity extends Activity {
    private LayoutInflater inflater;
    private List<Fruits> fruits;
    private GridView mGradeview;
    private FruitsAdapter mAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mGradeview= (GridView)findViewById(R.id.grideview);
        inflater=getLayoutInflater();
        fruits=new ArrayList<>();
        for(int i=0;i<30;i++) {
            Fruits apple = new Fruits("蘋果", R.drawable.apple);
            fruits.add(apple);
            Fruits banana = new Fruits("香蕉", R.drawable.banana);
            fruits.add(banana);
            Fruits grape = new Fruits("葡萄", R.drawable.grape);
            fruits.add(grape);

        }
        mAdapter=new FruitsAdapter(fruits,inflater);
        mGradeview.setAdapter(mAdapter);
    }


}
發佈了59 篇原創文章 · 獲贊 4 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章