无涯教程-Android - Grid View函数

Android GridView在二维滚动网格(行和列)中显示项目,并且网格项目不一定是预定的,但它们会使用ListAdapter自动插入到布局中

Grid View

Grid View - Grid view

ListView 和 GridView 是 AdapterView 的子类,可以通过将它们绑定到 Adapter 来填充,该适配器来自外部源的数据,并创建一个表示每个数据条目的视图。

Grid View - 属性

以下是特定于GridView的重要属性-

Sr.NoAttribute & 描述
1

android:id

这是唯一标识布局的ID。

2

android:columnWidth

这指定每列的固定宽度。可以是px,dp,sp,in或mm。

3

android:gravity

指定每个像元内的位置。可能的值是top,bottom,left,right,center,center_vertical,center_horizo​​ntal等。

4

android:horizo​​ntalSpacing

定义列之间的默认水平间距。可以是px,dp,sp,in或mm。

5

android:numColumns

定义要显示的列数。可以是整数值,如" 100"或auto_fit,这表示要显示尽可能多的列以填充可用空间。

6

android:stretchMode

定义列应如何伸展以填充可用的空白空间(如果有)。这必须是以下两个值之一:

  • none - 禁用拉伸。

  • spacingWidth - 延长每列之间的间隔。

  • columnWidth - 每列均等地拉伸。

  • spacingWidthUniform - 每列之间的间距被均匀拉伸。.

7

android:verticalSpacing

定义行之间的默认垂直间距。可以是px,dp,sp,in或mm。

Grid View - 示例

本示例将带您完成简单的步骤,以展示如何使用GridView创建自己的Android应用程序。

以下是修改后的主要Activity文件 src/com.example.helloworld/MainActivity.java 的内容。该文件可以包括每个基本生命周期方法。

package com.example.helloworld;import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.GridView;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);GridView gridview = (GridView) findViewById(R.id.gridview);gridview.setAdapter(new ImageAdapter(this));}
}

以下是 res/layout/activity_main.xml 文件的内容-

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/gridview"android:layout_width="fill_parent" android:layout_height="fill_parent"android:columnWidth="90dp"android:numColumns="auto_fit"android:verticalSpacing="10dp"android:horizontalSpacing="10dp"android:stretchMode="columnWidth"android:gravity="center"
/>

以下是 res/values/strings.xml 的内容,以定义两个新的常量-

<?xml version="1.0" encoding="utf-8"?>
<resources><string name="app_name">HelloWorld</string><string name="action_settings">Settings</string>
</resources>

以下是 src/com.example.helloworld/ImageAdapter.java 文件的内容-

package com.example.helloworld;import android.content.Context;import android.view.View;
import android.view.ViewGroup;import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;public class ImageAdapter extends BaseAdapter {private Context mContext;//Constructorpublic ImageAdapter(Context c) {mContext = c;}public int getCount() {return mThumbIds.length;}publicgetItem(int position) {return null;}public long getItemId(int position) {return 0;}//为 Adapter 引用的每个项目创建一个新的 ImageViewpublic View getView(int position, View convertView, ViewGroup parent) {ImageView imageView;if (convertView == null) {imageView = new ImageView(mContext);imageView.setLayoutParams(new GridView.LayoutParams(85, 85));imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);imageView.setPadding(8, 8, 8, 8);} else {imageView = (ImageView) convertView;}imageView.setImageResource(mThumbIds[position]);return imageView;}//Keep all Images in arraypublic Integer[] mThumbIds = {R.drawable.sample_2, R.drawable.sample_3,R.drawable.sample_4, R.drawable.sample_5,R.drawable.sample_6, R.drawable.sample_7,R.drawable.sample_0, R.drawable.sample_1,R.drawable.sample_2, R.drawable.sample_3,R.drawable.sample_4, R.drawable.sample_5,R.drawable.sample_6, R.drawable.sample_7,R.drawable.sample_0, R.drawable.sample_1,R.drawable.sample_2, R.drawable.sample_3,R.drawable.sample_4, R.drawable.sample_5,R.drawable.sample_6, R.drawable.sample_7};
}

运行Eclipse Run Icon工具栏。 Android studio将应用程序安装在您的AVD上并启动它,如果设置和应用程序一切正常,它将在"Emulator"窗口中显示-

Android gridView Layout

Sub-Activity 示例

以下是修改后的主要Activity文件 src/com.example.helloworld/MainActivity.java 的内容,该文件可以包括每个基本生命周期方法。

package com.example.helloworld;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;import android.view.Menu;
import android.view.View;import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);GridView gridview = (GridView) findViewById(R.id.gridview);gridview.setAdapter(new ImageAdapter(this));gridview.setOnItemClickListener(new OnItemClickListener() {public void onItemClick(AdapterView<?> parent, View v, int position, long id){//Send intent to SingleViewActivity Intent i = new Intent(getApplicationContext(), SingleViewActivity.class);//Pass image indexi.putExtra("id", position);startActivity(i);}});}
}

以下是新Activity文件 src/com.example.helloworld/SingleViewActivity.java 文件的内容-

package com.example.helloworld;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.ImageView;public class SingleViewActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.single_view);//Get intent dataIntent i = getIntent();//Selected image idint position = i.getExtras().getInt("id");ImageAdapter imageAdapter = new ImageAdapter(this);ImageView imageView = (ImageView) findViewById(R.id.SingleView);imageView.setImageResource(imageAdapter.mThumbIds[position]);}
}

以下是 res/layout/single_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:orientation="vertical" ><ImageView android:id="@+id/SingleView"android:layout_width="fill_parent"android:layout_height="fill_parent"/></LinearLayout>

以下是 AndroidManifest.xml 的内容,以定义两个新的常量-

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.helloworld"><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name="com.example.helloworld.MainActivity"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activity android:name=".SingleViewActivity"></activity></application>
</manifest>

然后单击"运行Eclipse运行图标工具栏。 Android studio将应用程序安装在您的AVD上并启动它,如果设置和应用程序一切正常,它将在"Emulator"窗口中显示-

Android gridView Layout

现在,如果您单击其中任一图像,它将显示为单个图像,如-

Android Single GridView Layout

Android 中的 Grid View函数 - 无涯教程网无涯教程网提供Android GridView在二维滚动网格(行和列)中显示项目,并且网格项目不一定是预定的,但...https://www.learnfk.com/android/android-grid-view.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/68279.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flutter 上传图片并裁剪

1.首先在pubspec.yaml文件中新增依赖pub.dev image_picker: ^0.8.75 image_cropper: ^4.0.1 2.在Android的AndroidManifest.xml文件里面添加权限 <activityandroid:name"com.yalantis.ucrop.UCropActivity"android:screenOrientation"portrait"andro…

C#添加WebApi,配置Swagger

1、创建一个WebAPI项目 下载、安装、引入【Swashbuckle.AspNetCore】包 右击【解决方案】&#xff0c;然后点击【管理Nuget包】&#xff0c;搜索【Swashbuckle.AspNetCore】包 2、配置Swagger中间件 在【Startup.cs】文件中的【ConfigureService】类中添加如下代码。 在【Sta…

Spring AOP与静态代理/动态代理

文章目录 一、代理模式静态代理动态代理代理模式与AOP 二、Spring AOPSping AOP用来处理什么场景jdk 动态代理cglib 动态代理面试题&#xff1a;讲讲Spring AOP的原理与执行流程 总结 一、代理模式 代理模式是一种结构型设计模式&#xff0c;它允许对象提供替代品或占位符&…

肖sir__设计测试用例方法之边界值03_(黑盒测试)

设计测试用例方法之边界值 边界点定义 上点&#xff1a;边界上的点 离点&#xff1a;离上点最近的点&#xff08;即上点左右两边最邻近的点&#xff09; 内点&#xff1a;在域范围内的点 案例&#xff1a;qq号&#xff1a;5-12位 闭区间&#xff1a; 离点&#xff1a;5 位 &…

KC705开发板——MGT IBERT测试记录

本文介绍使用KC705开发板进行MGT的IBERT测试。 KC705开发板 KC705开发板的图片如下图所示。FPGA芯片型号为XC7K325T-2FFG900C。 MGT MGT是 Multi-Gigabit Transceiver的缩写&#xff0c;是Multi-Gigabit Serializer/Deserializer (SERDES)的别称。MGT包含GTP、GTX、GTH、G…

Calico IP In IP模拟组网

Calico IP In IP模拟组网 网络架构 模拟组网 先在k8s-master-1节点执行如下命令&#xff1a; # 创建veth-pair设备对ip link add veth1 type veth peer name eth0# 创建ns1网络命名空间ip netns add ns1# 将eth0网卡插入ns1网络命名空间ip link set eth0 netns ns1# 为ns1网…

CC-TDOB01 CC-TDIL01 有效地监控和管理热工设备

CC-TDOB01 CC-TDIL01 有效地监控和管理热工设备 新兴的互联工厂技术是霍尼韦尔启动其43的亮点注册营养师霍尼韦尔用户组(HUG)美洲研讨会&#xff0c;重点是向制造商展示数字化转型如何帮助他们实现更高水平的高性能。 来自石油和天然气、化工、纸浆和造纸以及金属和采矿行业的…

全国唯一一所初试考Java的学校!平均300分拿下

苏州科技大学 考研难度&#xff08;☆&#xff09; 内容&#xff1a;23考情概况&#xff08;拟录取和复试分析&#xff09;、院校概况、23专业目录、23复试详情、各专业考情分析、各科目考情分析。 正文1187字&#xff0c;预计阅读&#xff1a;3分钟 2023考情概况 苏州科技…

大数据组件Sqoop-安装与验证

&#x1f947;&#x1f947;【大数据学习记录篇】-持续更新中~&#x1f947;&#x1f947; 个人主页&#xff1a;beixi 本文章收录于专栏&#xff08;点击传送&#xff09;&#xff1a;【大数据学习】 &#x1f493;&#x1f493;持续更新中&#xff0c;感谢各位前辈朋友们支持…

19-springcloud(上)

一 微服务架构进化论 单体应用阶段 (夫妻摊位) 在互联网发展的初期&#xff0c;用户数量少&#xff0c;一般网站的流量也很少&#xff0c;但硬件成本较高。因此&#xff0c;一般的企业会将所有的功能都集成在一起开发一个单体应用&#xff0c;然后将该单体应用部署到一台服务器…

实现Android APK瘦身99.99%

摘要&#xff1a; 如何瘦身是 APK 的重要优化技术。APK 在安装和更新时都需要经过网络下载到设备&#xff0c;APK 越小&#xff0c;用户体验越好。本文作者通过对 APK 内在机制的详细解析&#xff0c;给出了对 APK 各组成成分的优化方法及技术&#xff0c;并实现了一个基本 APK…

【PyGame/PyQy5】get-start 快速入门

1.windows、linux&#xff0c;mac 安装python3 2.PC系统安装pygame, 指令&#xff1a;pip install pygame 3. 保存如下文件&#xff1a; test_game.py 4.PC上运行 python test_game.py import pygame# 初始化Pygame pygame.init()# 创建游戏窗口 window pygame.display.s…

语言深入理解指针(非常详细)(三)

目录 数组名的理解使用指针访问数组 一维数组传参的本质二级指针指针数组指针数组模拟二维数组 数组名的理解 在上⼀个章节我们在使用指针访问数组的内容时&#xff0c;有这样的代码&#xff1a; int arr[10] {1,2,3,4,5,6,7,8,9,10}; int *p &arr[0];这里我们使用 &am…

史上最全PMP学习资料、项目管理资料、备考经验包,3A一次通过

你是否也有过类似的经历&#xff1f; 为了获取备考资料&#xff0c;有的同学在论坛、知乎或者相关垂直类网站下载了很多的资料&#xff0c;这些资料大部分是机构进行获客引流的资料&#xff0c;没有真正的干货。 经常会看到10G、20G的资料包&#xff0c;感觉内容很丰富&#xf…

【LeetCode算法系列题解】第51~55题

CONTENTS LeetCode 51. N 皇后&#xff08;困难&#xff09;LeetCode 52. N 皇后 II&#xff08;困难&#xff09;LeetCode 53. 最大子序和&#xff08;中等&#xff09;LeetCode 54. 螺旋矩阵&#xff08;中等&#xff09;LeetCode 55. 跳跃游戏&#xff08;中等&#xff09; …

智慧电力系统

智慧电力系统依托电易云-智慧电力物联网&#xff0c;将人工智能技术、物联网技术与电力行业相结合&#xff0c;通过数据的收集、分析和应用&#xff0c;实现电力资源精准调度、安全稳定运行、智能管理的全过程解决方案。 智慧电力系统的核心理念是将科技与能源紧密结合&#x…

pycharm创建的虚拟环境为什么用conda env list命令查询不到?

问题描述&#xff1a;pycharm创建的虚拟环境为什么用conda env list命令查询不到。 pycharm开发环境可以创建虚拟环境&#xff0c;目的是为隔绝其他环境种库带来的版本干扰&#xff0c;但是发现一个问题&#xff0c;无论是在windows终端、anaconda终端、Pycharm开发环境中的终…

【Spring】SpringBoot的10个参数验证技巧

这里写目录标题 前言1.使用验证注解2 使用自定义验证注解3 在服务器端验证4 提供有意义的错误信息5 将 i18n 用于错误消息messages.properties6 使用分组验证7 对复杂逻辑使用跨域验证8 对验证错误使用异常处理9 测试你的验证逻辑10 考虑客户端验证总结 前言 参数验证很重要&am…

第一次做接口测试用例

一、简介 在开始接口测试之前&#xff0c;我们想一下&#xff0c;接口测试的流程是什么&#xff1f;说到这里&#xff0c;有些人就会产生好奇和疑问&#xff0c;心里mmp&#xff1a;接口测试要什么流程哈&#xff1f;&#xff1f;&#xff1f;不就是参考接口文档&#xff0c;直…

如何通过构建遥感光谱反射信号与地表参数之间的关系模型来准确估算植被参数?植被参数光学遥感反演方法(Python)及遥感与生态模型数据同化算法

目录 专题一 植被参数遥感反演理论 专题二 植被叶片及冠层反射率模拟与处理 专题三 植被遥感模型参数敏感性分析 专题四 基于查找表(LUT)方法反演植被参数 专题五 基于优化算法反演植被参数 专题六 基于机器学习反演植被参数 专题七 遥感数据同化理论 专题八 同化遥感反…