AndroidUI设计——Gridview

来源:互联网 发布:易烊千玺水平知乎 编辑:程序博客网 时间:2024/05/22 01:47

例子效果:

这里写图片描述
这个例子里除了用了gridview还加了选中加蒙版和点击图片被选中。

代码:

Fruit

package com.example.administrator.mygridview;/** * Created by Administrator on 2015/8/26. */public class Fruit {    private String name;    private int img;    public Fruit(String name,int img){        this.name=name;        this.img=img;    }    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;    }}

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.CheckBox;import android.widget.CompoundButton;import android.widget.ImageView;import android.widget.TextView;import java.util.List;/** * Created by Administrator on 2015/8/26. */public class FruitAdapter extends BaseAdapter {    private List<Fruit> mFruits;    private LayoutInflater mInflater;    private boolean[] mMangerCheckBox;    public FruitAdapter(LayoutInflater inflater, List<Fruit> date) {        //将inflater        mInflater = inflater;        mFruits = date;        mMangerCheckBox=new boolean[date.size()];    }    @Override    public int getCount() {        return mFruits.size();    }    @Override    public Object getItem(int position) {        return position;    }    @Override    public long getItemId(int position) {        return position;    }    @Override    public View getView(final int position, View convertView, ViewGroup parent) {        ViewHolder vh=null;        if(convertView==null){            convertView=mInflater.inflate(R.layout.fruit_gridview_activity,null);            vh=new ViewHolder();            vh.textview_name= (TextView) convertView.findViewById(R.id.textview_name);            vh.imageview= (ImageView) convertView.findViewById(R.id.imageview);            vh.imageview_tint= (ImageView) convertView.findViewById(R.id.imageview_tint);            vh.checkbox= (CheckBox) convertView.findViewById(R.id.checkbox);            convertView.setTag(vh);        }else {            vh= (ViewHolder) convertView.getTag();        }        Fruit fruit =mFruits.get(position);        vh.textview_name.setText(fruit.getName());        vh.imageview.setImageResource(fruit.getImg());        vh.checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {            @Override            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {                mMangerCheckBox[position]=isChecked;                notifyDataSetChanged();            }        });        vh.checkbox.setChecked(mMangerCheckBox[position]);        if (mMangerCheckBox[position]){            vh.imageview_tint.setVisibility(View.VISIBLE);        }else {            vh.imageview_tint.setVisibility(View.INVISIBLE);        }        return convertView;    }    class ViewHolder{        TextView textview_name;        ImageView imageview;        ImageView imageview_tint;        CheckBox checkbox;    }    public void itemSelect(int position){        mMangerCheckBox[position]=!mMangerCheckBox[position];        notifyDataSetChanged();    }}

MainActivity

package com.example.administrator.mygridview;import android.app.Activity;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.widget.AdapterView;import android.widget.GridView;import java.util.ArrayList;import java.util.List;public class MainActivity extends Activity {    private GridView mgridView;    private List<Fruit> mFruits;    private FruitAdapter mAdapter;    private LayoutInflater mInflater;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mgridView = (GridView) findViewById(R.id.gridview);        mInflater = getLayoutInflater();        initData();        mAdapter = new FruitAdapter(mInflater, mFruits);        mgridView.setAdapter(mAdapter);        mgridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                mAdapter.itemSelect(position);            }        });    }    private void initData() {        mFruits = new ArrayList<>();        for (int i = 0; i < 10; i++) {            Fruit apple = new Fruit("苹果", R.mipmap.apple);            Fruit caomei = new Fruit("草莓", R.mipmap.caomei);            Fruit lizhi = new Fruit("荔枝", R.mipmap.lizhi);            Fruit cherry = new Fruit("樱桃", R.mipmap.cherry);            mFruits.add(apple);            mFruits.add(caomei);            mFruits.add(lizhi);            mFruits.add(cherry);        }    }}

layout

activity_main

fruit_gridview_activity

0 0
原创粉丝点击