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
- AndroidUI设计——Gridview
- AndroidUI设计
- AndroidUI设计
- androidUI——PopWindow
- androidUI GridView(九宫图)
- AndroidUI组件之GridView
- AndroidUI模板设计
- AndroidUI——PopupWindow焦点问题
- AndroidUI——InputFilter的使用(1)
- AndroidUI——InputFilter的使用(2)
- AndroidUI——InputFilter的使用(3)
- AndroidUI——HorizontalListView实现水平滑动
- AndroidUI—三种动画实现
- AndroidUI设计之ViewPaper详解
- androidUI设计之旅 ----TextView01
- androidUI设计之旅 ----TextView02
- androidUI设计之旅 ----TextView03
- androidUI设计之旅 ----TextView04
- 欢迎使用CSDN-markdown编辑器
- 邻接表保存图
- 策略模式(Strategy模式)
- Android之WindowManager实现悬浮按钮
- iOS新建PCH文件路径找不到的问题解决办法
- AndroidUI设计——Gridview
- spoj 1811 Longest Common Substring(后缀自动机)
- 桑基图(sankey)的绘制
- Mysql 定时任务 事件处理存储过程详解
- Android布局中的尺寸单位介绍
- RSA算法原理
- 单例模板的简单实现
- HG,GIT,SVN版本控制系统
- 使用[NSKeyedUnarchiver unarchiveObjectWithData:data]程序crash