[Android学习系列13]关于Gridview的一些事
2014-04-29 01:30
357 查看
用mvc的思想去理解 数据源,adapter,xxxView的关系,写代码就轻松多了
先写一个简单的gridview
第一版:只有图片
xml
View Code
个人粗俗地理解这两句(错了求指正):
convertView.setTag(mixedView); // 为convertView设定一个 指向mixedView的引用
mixedView= (MixedView) convertView.getTag(); // 把convertView所引用的对象赋给mixedView, 也就是说,convertView和mixedView引用的是同一个内存里的东西
//所以getview时 我们做处理的是mixedView,还可以返回convertView,因为他们引用的是同一个东西啊
最后长这样:
android:stretchMode 参考下图
更多参考:
/article/4132172.html
/article/6144664.html
先写一个简单的gridview
第一版:只有图片
xml
public class ActivityMain extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); GridView gridView = (GridView)findViewById(R.id.gridView1); gridView.setAdapter( new MyGridviewAdapter(this) ); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } //拥有textview的string内容 和imageview的资源id class IconInfo { String text; int imageid; } //一个混合了textview和imageview的类 class MixedView { ImageView imgview; TextView textview; } class MyGridviewAdapter extends BaseAdapter { Context context; //传入ActivityMain给adapter,创建view的时候要用到 LayoutInflater inflater; List<IconInfo> iconInfoList; //做一个数组存图表的id int []imagesId = {R.drawable.icon1,R.drawable.icon2,R.drawable.icon3, R.drawable.icon4,R.drawable.icon5,R.drawable.icon6, R.drawable.icon7,R.drawable.icon8,R.drawable.icon9}; String []titles = {"标题1","标题2","标题3","标题4","标题5","标题6","标题7","标题8","标题9"}; MyGridviewAdapter(Context con) { this.context = con; inflater = LayoutInflater.from(context); iconInfoList = new ArrayList<IconInfo>(); for(int i=0; i<imagesId.length; i++) { IconInfo iconInfo = new IconInfo(); iconInfo.imageid = imagesId[i]; iconInfo.text = titles[i]; iconInfoList.add(iconInfo); } } @Override public int getCount() { return imagesId.length; } @Override public Object getItem(int arg0) { return arg0; } @Override public long getItemId(int arg0) { return arg0; } @Override public View getView(int position, View convertView, ViewGroup parent) { MixedView mixedView; //用setTag() getTag() 来节约findViewById所消耗的性能 if( convertView == null ) { convertView = inflater.inflate(R.layout.grid_one_item, null); mixedView = new MixedView(); mixedView.imgview = (ImageView)convertView.findViewById(R.id.grid_item_image); mixedView.textview = (TextView)convertView.findViewById(R.id.grid_item_text); convertView.setTag(mixedView); } else { mixedView = (MixedView)convertView.getTag(); } mixedView.imgview.setImageResource( iconInfoList.get(position).imageid ); mixedView.textview.setText( iconInfoList.get(position).text ); return convertView; } } }
View Code
个人粗俗地理解这两句(错了求指正):
convertView.setTag(mixedView); // 为convertView设定一个 指向mixedView的引用
mixedView= (MixedView) convertView.getTag(); // 把convertView所引用的对象赋给mixedView, 也就是说,convertView和mixedView引用的是同一个内存里的东西
//所以getview时 我们做处理的是mixedView,还可以返回convertView,因为他们引用的是同一个东西啊
最后长这样:
android:stretchMode 参考下图
更多参考:
/article/4132172.html
/article/6144664.html
相关文章推荐
- [Android学习系列9]关于Fragment的一些事
- [Android学习系列4]关于Listview和adapter的一些事
- [Android学习系列10]关于Task,Activity,BackStack的一些事
- [Android学习系列11]关于Android数据存储的一些事
- 俺网站Android及Ophone开发,全系列上手资料,关于环境搭建遇见的一些问题,包1天能上手。
- Android JNI学习系列1.2—— JNI方法名,数据类型和方法签名的一些认识
- [Android学习系列19]Service的一些事
- Android学习系列(12)--App列表之拖拽GridView
- [Android学习系列20]图形图像的一些事
- Android学习札记24:收集到的一些关于解决Bitmap OOM内存溢出的方法
- 关于KS系列Android开发学习总结
- Android学习札记31:收集到的一些关于Handler和Runnable的问题(2)
- Android学习系列(12)--App列表之拖拽GridView
- Android中关于JNI 的学习(一)对于JNIEnv的一些认识
- [Android学习系列5]一些界面实现效果
- Android中关于JNI 的学习(一)对于JNIEnv的一些认识
- android关于绘图的一些简单的学习
- 一些关于Android蓝牙的学习链接
- Android中关于JNI 的学习(一)对于JNIEnv的一些认识
- Android学习系列 App列表之拖拽GridView