一手遮天 Android - view(集合类): GridView 基础 2

一手遮天 Android - view(集合类): GridView 基础 2,第1张

概述项目地址https://github.com/webabcd/AndroidDemo作者webabcd一手遮天Android-view(集合类):GridView基础2示例如下:/view/collection/GridViewDemo2.java/***GridView-网格控件**本例演示*1、GridView通过BaseAdapter显示数据*2、GridView的常
@H_502_1@项目地址 https://github.com/webabcd/AndroidDemo
作者 webabcd

一手遮天 AndroID - vIEw(集合类): GrIDVIEw 基础 2示例如下:@H_502_1@/vIEw/collection/GrIDVIEwDemo2.java

/** * 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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/999597.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存