GridViewPager

article/2025/9/10 8:46:04

GridViewPager


GridViewPager ViewPager结合GridView,轻松实现类似表情面板的控件。可自由定制Item布局,提供充足的自定义参数等。也处理了条目点击事件和条目长按事件。效果如下:
GridViewPager
Demo下载地址:GridViewPager ,或者扫描以下二维码安装:
这里写图片描述


使用方法


Eclipse

添加项目依赖;也可以下载/GridViewPager/gvp/目录下的gvp.aar,解压引用里边的classes.jar库

Android Studio (Gradle)

库依赖和aar包引用可参考Eclipse使用方式,如果使用Gradle依赖的话请参考下面第一步

  • 第一步,在Module的builder.gradle中添加依赖(把latestVersion替换成第一行徽章中的版本号)
dependencies {compile 'com.yhy:gvp:latestVersion'
}
  • 第二步,在需要显示GridViewPager的布局文件中添加如下代码

    • 在布局文件跟布局中添加如下代码(如果不在布局文件中配置参数就可以不添加)
    xmlns:app="http://schemas.android.com/apk/res-auto"
    • 添加控件布局代码及相关配置参数
    <!-- 自定义属性 -->
    <com.yhy.gvp.widget.GridViewPager
        android:id="@+id/gvp_content_a"android:layout_width="match_parent"android:layout_height="260dp"app:horizontal_spacing="2dp"app:num_columns="4"app:page_size="6"app:scroll_bar_enable="false"app:vertical_spacing="2dp"/><!-- 使用默认属性 -->
    <com.yhy.gvp.widget.GridViewPager
        android:id="@+id/gvp_content_b"android:layout_width="match_parent"android:layout_height="wrap_content"/>
    • 测试数据
    //测试数据
    private static final int[] IMG_ARR = {R.drawable.a, R.drawable.b, 
    R.drawable.c,R.drawable.d, R.drawable.e, R.drawable.f, R.drawable.g, 
    R.drawable.h, R.drawable.i, R.drawable.j, R.drawable.k, R.drawable.l, 
    R.drawable.m, R.drawable.n, R.drawable.o, R.drawable.p, R.drawable.q, 
    R.drawable.r, R.drawable.s, R.drawable.t, R.drawable.u, R.drawable.v, 
    R.drawable.w, R.drawable.x, R.drawable.y, R.drawable.z, R.drawable.u, 
    R.drawable.v, R.drawable.aa, R.drawable.bb, R.drawable.cc, R.drawable.dd,
    R.drawable.ee, R.drawable.ff};
    • 第四步,在代码中通过findViewById获取到GridViewPager控件,设置适配器
    gvpContentA.setGVPAdapter(new GridViewPager.GVPAdapter() {
    private AbsListView.LayoutParams params = new AbsListView.LayoutParams(imgWidthHeight, imgWidthHeight);@Overridepublic int getCount() {return IMG_ARR.length;}@Overridepublic Integer getItem(int position) {return IMG_ARR[position];}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ImageView iv = new ImageView(MainActivity.this);iv.setLayoutParams(params);iv.setImageResource(getItem(position));iv.setScaleType(ImageView.ScaleType.CENTER_INSIDE);iv.setBackgroundColor(Color.parseColor("#ff0000"));return iv;}
    });
    • 第五步,设置相关事件(点击事件和长按事件)
    gvpContentA.setOnItemClickListener(new GridViewPager.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position) {ToastUtils.toastShort(MainActivity.this, "第" + position + "个条目被点击");}
    });gvpContentA.setOnItemLongClickListener(new GridViewPager.OnItemLongClickListener() {@Overridepublic boolean onItemLongClick(AdapterView<?> parent, View view, int position) {ToastUtils.toastShort(MainActivity.this, "第" + position + "个条目被长按");//以下操作只是为了展示notifyDataSetChanged()的用法int size = 4;if (size < IMG_ARR.length) {//改变数据并刷新适配器//...}gvpContent.notifyDataSetChanged();return false;}
    });

自定义属性说明

属性名默认值属性说明
page_size4每页显示数量
num_columns4每页显示列数
vertical_spacing0.5dp条目之间垂直方向的间距
horizontal_spacing0.5dp条目之间水平方向的间距
scroll_bar_enablefalse是否显示GridView的滚动条

GIthub地址: GridViewPager

就这样吧,不喜勿喷哦。。哈哈


http://chatgpt.dhexx.cn/article/VNMKS2mV.shtml

相关文章

libevent 编译

1.下载源码 github:https://github.com/libevent/libevent 官网&#xff1a;http://libevent.org/ 2.CMake 编译 在libevent源码目录建立文件夹&#xff1a;BuildVs2010_x64 2.打开CMake 3.BuildVs2010_x64 下此时生成了vs2010的解决方案。然后编译生成就ok NOTE&#x…

13、《Libevent中文帮助文档》学习笔记13:Linux下集成、运行libevent

Linux下编译libevent的指导可以参考《4、《Libevent中文帮助文档》学习笔记4&#xff1a;Linux下编译libevent》&#xff0c;完成编译、安装&#xff0c;生成so库后&#xff0c;其他程序即可依赖libevent的so库&#xff0c;使用libevent的功能。 由于没有通过prefix指定安装路…

libevent 编译与安装 (WIN10 visual studio2019, ubuntu,centos)

文章目录 一、准备安装包二、编译与安装编译zlib编译openssl编译libevent 三、libevent集成zlib测试程序修改编译&#xff08;可选&#xff09;四、测试程序五、linux(ubuntu)测试安装依赖环境&#xff0c;依次编译zlib,openssl,libeventwindows与linux共享文件夹&#xff08;使…

Libevent 学习一:Libevent 源码编译

文章目录 Libevent 学习一&#xff1a;Libevent 源码编译Libevent Windows 编译Windows 编译环境安装 Visual Studio Community 2015安装 zlib安装 OpenSSL安装 Libeventcmake 安装 LibeventLibevent 测试程序 Libevent Linux编译CentOS 7 安装 LibeventLibevent 测试程序 Libe…

libevent mysql_libevent安装总结

1.先用&#xff1a;ls -al /usr/lib | grep libevent 查看是否已安装&#xff1b;如果已安装且版本低于1.3&#xff0c;则先通过&#xff1a;rpm -e libevent —nodeps进行卸载。 2.下载libevent安装包&#xff1a;libevent-2.0.18-stable.tar.gz。 wget https://github.com/do…

在window用vcpkg安装libevent

参考readme https://github.com/microsoft/vcpkg/blob/master/README_zh_CN.md 使用的PackageManager方式安装&#xff0c; Package Managers 下载 vcpkg 依赖管理包 git clone https://github.com/Microsoft/vcpkg.git cd vcpkg ./bootstrap-vcpkg.bat ./vcpkg integrate…

libevent实践01:准备源码、搭建项目、编译脚本和入门例子

编译源码 libevent是一个Reactor事件库。 我的理解&#xff0c;就是封装了select、epoll、poll的函数库。有使用select&#xff0c;poll&#xff0c;epoll的需求就可以使用的。 官网地址&#xff1a;https://libevent.org/ 下载源码&#xff1a; https://github.com/libev…

libevent(1)windows下安装libevent

Socket通信库libevent成熟、稳定、性能高&#xff0c;在unix和windows下都能使用&#xff0c;在证券交易领域也有不少成功的应用&#xff0c;已经用事实证明是非常棒的socket通信库。对我们目前交易系统的unix重构来说&#xff0c;是比较合适的选择 –– 坑少、在证券交易项目中…

Libevent库的学习

目录 Libevent 概述 Libevent 使用模型 使用Libevent的基本流程&#xff1a; libevent 的核心&#xff0c;event 事件 1. 创建一个事件event 2. 释放event_free 3. 注册event 4. 信号事件 5. 销毁event_base Libevent 结构图 使用libevent库去实现tcp服务器 Libev…

编译libevent

本文记录在win10编译libevent的过程 1.编译前准备zlib,openssl zlib网址 http://www.zlib.net/ 下载源码解压缩 打开vs的dos窗口 32位选择32位窗口这里选择64位,cd 到解压后的文件夹 执行 nmake /f win32/Makefile.msc 执行后可以看到目录下有lib文件和dll文件和测试文件…

libevent简要介绍

libevent库 开源。精简。跨平台&#xff08;Windows、Linux、Maxos、unix&#xff09;。专注于网络通信。 源码包安装&#xff1a; ./configure 检查安装环境 生成makefile make 生成.o和可执行文件 sudo make install …

Libevent库的简介

一、libevent是什么 Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库&#xff0c;主要有以下几个亮点&#xff1a;事件驱动&#xff08; event-driven&#xff09;&#xff0c;高性能;轻量级&#xff0c;专注于网络&#xff0c;不如 ACE 那么臃肿庞大&#xff1b…

libevent库学习(1)

一、初识 1、libevent介绍 Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库&#xff0c;主要有以下几个亮点&#xff1a;事件驱动&#xff08; event-driven&#xff09;&#xff0c;高性能;轻量级&#xff0c;专注于网络&#xff0c;不如 ACE 那么臃肿庞大&…

详解Libevent网络库

项目中要用到libevent&#xff0c;所以就自学了libevent&#xff0c;参考资料为张亮的《libevent源码深度剖析》和《linux高性能服务器编程》 Libevent简介 Libevent是开源社区一款高性能的I/O框架库&#xff0c;其具有如下特点&#xff1a; 1.跨平台支持。Libevent支持Linu…

Libevent库的介绍与应用

Libevent库 Libevent概述Libevent使用模型Libevent库使用示例Libevent事件类型和框架结构使用Libevent完成tcp服务端 Libevent概述 Libevent是开源社区的一款高性能的I/O框架库&#xff0c;使用Libevent的著名案例有&#xff1a;高性能的分布式内存对象缓存软件memcached,Goog…

Linux c 开发 - libevent

目录 一、event_base 1. 创建event_base 2. 查看IO模型 3. 销毁event_base 4. 事件循环 event loop 5. event_base的例子 二、event 事件 1. 创建一个事件event 2. 释放event_free 3. 注册event 4.event_assign 5. 信号事件 6. event细节 三、Socket实例 四、Bu…

安装svn客户端

下载地址 下载 TortoiseSVN 我的网盘地址&#xff1a; 百度网盘 请输入提取码 提取码&#xff1a; em9s 1、安装客户端 双击运行&#xff1a; 点击【next】 点击【next】 选择好路径后&#xff0c;点击【next】 点击【install】安装 点击【finish】完成安装。安装完成后重…

SVN客户端配置--客户端

一、使用客户端软件连接SVN服务器 在项目文件夹中单击右键–>TortoiseSVN–>Repo-browser,并在弹出框中贴入URL&#xff08;svn://服务器IP&#xff09; 在图中指定的位置单击右键选择checkput 点击OK点击OK SVN的三大指令 指令名称Checkout①连接到SVN服务器②更新服务…

SVN客户端(TortoiseSVN)安装及使用说明

&#x1f60a; 作者&#xff1a; 一恍过去 &#x1f496; 主页&#xff1a; https://blog.csdn.net/zhuocailing3390 &#x1f38a; 社区&#xff1a; Java技术栈交流 &#x1f389; 主题&#xff1a; SVN客户端(TortoiseSVN)安装及使用说明 ⏱️ 创作时间&#xff1a; 20…

ubuntu搭建SVN客户端,右击提交或更新

有时候我们会在Linux系统上搞开发&#xff0c;项目在SVN上&#xff0c;不搭建SVN环境搞起来比较麻烦&#xff0c;不用其他软件为载体实现右击提交更新等其他操作&#xff0c;不使用VsCode,IDE全家桶等为载体搭建插件形式的SVN&#xff0c;完全独立搭建 1&#xff1a;安装SVN客…