Android GridView

古人已用三冬足,年少今开万卷余。这篇文章主要讲述Android GridView相关的知识,希望能为你提供帮助。
GridView网格视图
 
GridView网格视图是按照行,列分布的方式来显示多个组件,通常用于显示图片或是图标等,在使
用网格视图时,首先需要要在屏幕上添加GridView组件。
 
常用属性:
1. android:columnWidth 用于设置列的宽度
2. android:gravity 用于设置对齐方式
3. android:horizontalSpacing 用于设置各元素之间的水平间距
4. android:numColumns 用于设置列数
5. android:stretchMode 用于设置拉伸模式,其中属性值可以是
//none(不拉伸),
  //spacingWidth(仅拉伸元素之间的间距),
//columnWidth(仅拉伸表格元素本身)或
//spacingWidthUniform(表格元素本身,元素之间的间距一起拉伸)
6. android:verticalSpacing 用于设置各元素之间的垂直间距
 
GridView与ListView类似,都需要通过Adapter来提供显示的数据.但是,ListView可以通过
android:entries来提供资源文件的数据源,GridView没有这些属性,所以必须通过适配器来为其
添加数据。
 
GridView的事件和ListView一样,都是设置
setOnItemClickListener(OnItemClickListener listener);
 

Android GridView

文章图片

 
 
Android GridView

文章图片
Android GridView

文章图片
1 < RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2xmlns:tools="http://schemas.android.com/tools" 3android:layout_width="match_parent" 4android:layout_height="match_parent" 5android:orientation="vertical" > 6 7< GridView 8android:id="@+id/gv" 9android:layout_width="match_parent" 10android:layout_height="wrap_content" 11android:layout_alignParentTop="true" 12android:layout_margin="30dp" 13android:numColumns="4" 14android:stretchMode="columnWidth" /> 15 16< ImageView 17android:id="@+id/img_large" 18android:layout_width="wrap_content" 19android:layout_height="wrap_content" 20android:layout_alignLeft="@id/gv" 21android:layout_alignRight="@id/gv" 22android:layout_below="@id/gv" 23android:layout_margin="20dp" 24android:layout_centerHorizontal="true" 25android:adjustViewBounds="true" 26android:scaleType="fitXY" 27android:src="https://www.songbingjia.com/android/@drawable/img01" /> 28 29 < /RelativeLayout>

activity_main.xml 
Android GridView

文章图片
Android GridView

文章图片
1 < GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 2android:layout_width="match_parent" 3android:layout_height="match_parent" > 4 5< ImageView 6android:id="@+id/img" 7android:layout_width="wrap_content" 8android:layout_margin="20dp" 9android:layout_height="wrap_content" 10android:src="https://www.songbingjia.com/android/@drawable/ic_launcher"/> 11 12 < /GridLayout>

item_layout.xml【Android GridView】 
Android GridView

文章图片
Android GridView

文章图片
1 public class MainActivity extends Activity { 2 3int[] imgs = new int[12]; 4 5@Override 6protected void onCreate(Bundle savedInstanceState) { 7super.onCreate(savedInstanceState); 8setContentView(R.layout.activity_main); 9 10initData(); 11GridView gv = (GridView) findViewById(R.id.gv); 12final ImageView iv = (ImageView) findViewById(R.id.img_large); 13 14List< HashMap< String, Object> > data = https://www.songbingjia.com/android/new ArrayList< HashMap< String, Object> > (); 15for (int i = 0; i < 12; i++) { 16HashMap< String, Object> map = new HashMap< String, Object> (); 17map.put("img", imgs[i]); 18data.add(map); 19} 20 21SimpleAdapter adapter = new SimpleAdapter(MainActivity.this, data, 22R.layout.item_layout, new String[] { "img" }, 23new int[] { R.id.img }); 24gv.setAdapter(adapter); 25 26gv.setOnItemClickListener(new OnItemClickListener() { 27 28@Override 29public void onItemClick(AdapterView< ?> parent, View view, 30int position, long id) { 31iv.setImageResource(imgs[position]); 32} 33}); 34 35 36} 37 38private void initData() { 39//初始化数据 40 41for (int i = 0; i < imgs.length; i++) { 42int imgI = i + 1; 43// 获取其他类的属性,通过属性获取属性对应得值 44// null代表的是静态变量,非静态变量需要传递对象 45try { 46imgs[i] = R.drawable.class.getField("img0" + imgI).getInt(null); 47 48} catch (Exception e) { 49e.printStackTrace(); 50} 51} 52} 53 54 }

MainActivity 

    推荐阅读