Android学习-网格视图GridView
程序员文章站
2022-04-09 19:08:21
一、简介: GridView是一个以表格形式显示多张图片等组件。它是按照行列的方式来显示内容的,比如实现九宫格图,用GridView是首选。
一、简介:
gridview是一个以表格形式显示多张图片等组件。它是按照行列的方式来显示内容的,比如实现九宫格图,用gridview是首选。
二、代码块:
看过我上一篇博客的同学应该知道,一步一步全部步骤写出来是很费时间的,大概流程就那样,所以这次网格视图就直接上代码块了,步骤差不多。
在activity_main.xml中添加一个按钮:
<button android:id="@+id/btn_gridview" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="gridview" android:textallcaps="false"/>
mainactivity在原有基础上添加:
先声明控件:
private button mbtngridview;
在oncreate:
mbtngridview=findviewbyid(r.id.btn_gridview);
在setlisteners:
mbtngridview.setonclicklistener(onclick);
在onclick:
case r.id.btn_gridview: //跳转到gridview演示页面 intent = new intent(mainactivity.this, gridviewactivity.class); break;
在activity_grid_view.xml:
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="15dp"> <gridview android:id="@+id/gv" android:layout_width="match_parent" android:layout_height="wrap_content" android:numcolumns="3" android:horizontalspacing="10dp" android:verticalspacing="10dp"/> </linearlayout>
在gridviewactivity:
先声明控件:
private gridview mgv;
在oncreate:
mgv=findviewbyid(r.id.gv);
在之前新建mygridviewadapter:
public class mygridviewadapter extends baseadapter { @override public int getcount() { return 10; } @override public object getitem(int i) { return null; } @override public long getitemid(int i) { return 0; } @override public view getview(int i, view view, viewgroup viewgroup) { return null; } }
新建layout_grid_item.xml:
<?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" android:gravity="center_horizontal"> <imageview android:id="@+id/iv_grid" android:layout_width="match_parent" android:layout_height="100dp" android:scaletype="fitcenter" android:background="@color/colorprimarydark"/> <textview android:id="@+id/tv_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="hello" android:textcolor="@color/coloraccent" android:gravity="center" android:layout_margintop="10dp" /> </linearlayout>
在mygridviewadapter中修改:
public class mygridviewadapter extends baseadapter { private context mcontext; private layoutinflater mlayoutinflater; public mygridviewadapter(context context){ this.mcontext=context; mlayoutinflater=layoutinflater.from(context); } @override public int getcount() { return 10; } @override public object getitem(int i) { return null; } @override public long getitemid(int i) { return 0; } static class viewholder{ public imageview imageview; public textview textview; } @override public view getview(int i, view view, viewgroup viewgroup) { viewholder holder=null; if(view==null){ view=mlayoutinflater.inflate(r.layout.layout_grid_item,null); holder=new viewholder(); holder.imageview=view.findviewbyid(r.id.iv_grid); holder.textview=view.findviewbyid(r.id.tv_title); view.settag(holder); }else { holder=(viewholder)view.gettag(); } //赋值 holder.textview.settext("ycm"); glide.with(mcontext).load("http://i1.bvimg.com/670191/a72f2a8c0f289d48s.png").into(holder.imageview); return view; } }
在gridviewactivity中添加:
mgv.setadapter(new mygridviewadapter(gridviewactivity.this));
三、运行截图:
设置点击和长按事件之前的listview中介绍过了,就不介绍了。
上一篇: 直男看起来都一样
推荐阅读
-
Android开发学习之控件GridView的使用讲解
-
Android学习-网格视图GridView
-
Android学习-列表视图ListView
-
Android开发学习笔记 Gallery和GridView浅析
-
Android学习-滚动视图ScrollView和HorizontalScrollView
-
android开发程序之路(列表视图 ListView和GridView使用)
-
Android UI控件系列:GridView(网格布局)
-
Android学习(4)ImageView_图片视图
-
Android开发学习之控件GridView的使用讲解
-
Android学习08-----Android中的基本控件(下)(5)_GridView,AnalogClock与DigitalClock,Chronomete