@H_502_1@项目地址 https://github.com/webabcd/AndroidDemo一手遮天 AndroID - vIEw(集合类): GrIDVIEw 基础 2示例如下:@H_502_1@/vIEw/collection/GrIDVIEwDemo2.java
作者 webabcd
/** * GrIDVIEw - 网格控件 * * 本例演示 * 1、GrIDVIEw 通过 BaseAdapter 显示数据 * 2、GrIDVIEw 的常用属性的说明(参见 xml 中的说明) * 3、其他更多知识点请参见 ListVIEw 的说明(GrIDVIEw 和 ListVIEw 都继承自 AbsListVIEw) */package com.webabcd.androIDdemo.vIEw.collection;import androID.content.Context;import androIDx.appcompat.app.AppCompatActivity;import androID.os.Bundle;import androID.vIEw.LayoutInflater;import androID.vIEw.VIEw;import androID.vIEw.VIEwGroup;import androID.Widget.BaseAdapter;import androID.Widget.button;import androID.Widget.GrIDVIEw;import androID.Widget.ImageVIEw;import com.webabcd.androIDdemo.R;import java.util.ArrayList;import java.util.List;public class GrIDVIEwDemo2 extends AppCompatActivity { private button mbutton1; private button mbutton2; private button mbutton3; private button mbutton4; private GrIDVIEw mGrIDVIEw1; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_vIEw_collection_grIDvIEwdemo2); mGrIDVIEw1 = findVIEwByID(R.ID.grIDVIEw1); mbutton1 = findVIEwByID(R.ID.button1); mbutton2 = findVIEwByID(R.ID.button2); mbutton3 = findVIEwByID(R.ID.button3); mbutton4 = findVIEwByID(R.ID.button4); sample(); } private voID sample() { // 构造数据 List<MyData> myDataList = new ArrayList<MyData>(); myDataList.add(new MyData(R.drawable.img_sample_son)); myDataList.add(new MyData(R.drawable.img_sample_son)); myDataList.add(new MyData(R.drawable.img_sample_son)); myDataList.add(new MyData(R.drawable.img_sample_son)); myDataList.add(new MyData(R.drawable.img_sample_son)); myDataList.add(new MyData(R.drawable.img_sample_son)); myDataList.add(new MyData(R.drawable.img_sample_son)); myDataList.add(new MyData(R.drawable.img_sample_son)); myDataList.add(new MyData(R.drawable.img_sample_son)); // 实例化自定义的 BaseAdapter MyAdapter myAdapter = new MyAdapter(myDataList, this); mGrIDVIEw1.setAdapter(myAdapter); // 设置 stretchMode 属性 mbutton1.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { // 相当于 xml 中的 stretchMode="none" mGrIDVIEw1.setStretchMode(GrIDVIEw.NO_STRETCH); } }); mbutton2.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { // 相当于 xml 中的 stretchMode="spacingWIDth" mGrIDVIEw1.setStretchMode(GrIDVIEw.STRETCH_SPACING); } }); mbutton3.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { // 相当于 xml 中的 stretchMode="columnWIDth" mGrIDVIEw1.setStretchMode(GrIDVIEw.STRETCH_ColUMN_WIDTH); } }); mbutton4.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { // 相当于 xml 中的 stretchMode="spacingWIDthUniform" mGrIDVIEw1.setStretchMode(GrIDVIEw.STRETCH_SPACING_UNIFORM); } }); } // 自定义实体类 class MyData { private int _logoID; public MyData() { } public MyData(int logoID) { this._logoID = logoID; } public int getlogoID() { return _logoID; } public voID setlogoID(int logoID) { this._logoID = logoID; } } // 自定义 BaseAdapter class MyAdapter extends BaseAdapter { private List<MyData> _myDataList; private Context _context; public MyAdapter(List<MyData> myDataList, Context context) { this._myDataList = myDataList; this._context = context; } // 需要呈现的 item 的总数 @OverrIDe public int getCount() { return _myDataList.size(); } // 返回指定索引位置的 item 的对象 @OverrIDe public Object getItem(int position) { return _myDataList.get(position); } // 返回指定索引位置的 item 的 ID @OverrIDe public long getItemID(int position) { return position; } @OverrIDe public VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) { VIEwHolder holder = null; if (convertVIEw == null) { convertVIEw = LayoutInflater.from(_context).inflate(R.layout.item_vIEw_collection_grIDvIEwdemo2, parent, false); holder = new VIEwHolder(); holder.imglogo = (ImageVIEw) convertVIEw.findVIEwByID(R.ID.imglogo); convertVIEw.setTag(holder); // 将 holder 保存到 convertVIEw 中 } else { holder = (VIEwHolder) convertVIEw.getTag(); } holder.imglogo.setBackgroundResource(_myDataList.get(position).getlogoID()); return convertVIEw; } class VIEwHolder { ImageVIEw imglogo; } }}
@H_502_1@/layout/activity_vIEw_collection_grIDvIEwdemo2.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:orIEntation="vertical"> <!-- horizontalSpacing - 水平方向单元格之间的间距 verticalSpacing - 垂直方向单元格之间的间距 gravity - 单元格内元素相对于单元格的对齐方式 numColumns - 当此值指定为一个大于 0 的整数时 指定网格控件的列数(网格列宽会平均分,行高和行数会自适应) numColumns - 当此值指定为 auto_fit 时(auto_fit 就是 -1) 1、列数会自适应,列宽会参考 columnWIDth 值,行高和行数会自适应 2、stretchMode - 列的拉伸方式 none - 不拉伸,列的宽度就是 columnWIDth 值 spacingWIDth - 列会填满 GrIDVIEw 的宽度,列之间的间距会被拉伸,列的宽度就是 columnWIDth 值 columnWIDth - 列会填满 GrIDVIEw 的宽度,列本身会被拉伸,即列的宽度会大于等于 columnWIDth 值 spacingWIDthUniform - 列会填满 GrIDVIEw 的宽度,列本身和列之间的间距都 会被拉伸 --> <GrIDVIEw androID:ID="@+ID/grIDVIEw1" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:horizontalSpacing="5dp" androID:verticalSpacing="5dp" androID:gravity="center" androID:numColumns="auto_fit" androID:columnWIDth="60dp" androID:stretchMode="none"/> <!-- 以下几个按钮用于动态修改 GrIDVIEw 的 stretchMode 属性,以便观察效果 --> <button androID:ID="@+ID/button1" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:textAllCaps="false" androID:text="stretchMode:none"/> <button androID:ID="@+ID/button2" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:textAllCaps="false" androID:text="stretchMode:spacingWIDth"/> <button androID:ID="@+ID/button3" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:textAllCaps="false" androID:text="stretchMode:columnWIDth"/> <button androID:ID="@+ID/button4" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:textAllCaps="false" androID:text="stretchMode:spacingWIDthUniform"/></linearLayout>
@H_502_1@/layout/item_vIEw_collection_grIDvIEwdemo2.xml<?xml version="1.0" enCoding="utf-8"?><ImageVIEw xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:ID="@+ID/imglogo" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:scaleType="fitXY"></ImageVIEw>
@H_502_1@项目地址 https://github.com/webabcd/AndroidDemo总结
作者 webabcd
以上是内存溢出为你收集整理的一手遮天 Android - view(集合类): GridView 基础 2全部内容,希望文章能够帮你解决一手遮天 Android - view(集合类): GridView 基础 2所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)