无涯教程-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.hqwc.cn/news/96454.html

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

相关文章

解决Apache Tomcat “Request header is too large“ 异常 ‍

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

【leetcode 力扣刷题】数学题之计算次幂//次方:快速幂

利用乘法求解次幂问题—快速幂 50. Pow(x, n)372. 超级次方 50. Pow(x, n) 题目链接&#xff1a;50. Pow(x, n) 题目内容&#xff1a; 题目就是要求我们去实现计算x的n次方的功能函数&#xff0c;类似c的power()函数。但是我们不能使用power()函数直接得到答案&#xff0c;那…

Redis之主从复制解读

目录 基本概述 作用 如何配置主从复制 命令配置&#xff08;Slaveof &#xff09; 配置文件配置 主从复制缺点 主从复制原理 主从复制常见问题解答 命令补充&#xff08;info replication&#xff09; 基本概述 主从复制,是指将一台Redis服务器的数据,复制到其他的R…

抽象轻松c语言

目 c语言 c程序 c语言的核心在于语言&#xff0c;语言的作用是进行沟通&#xff0c;人与人之间的信息交换 人与人之间的信息交换是会有信息空白&#xff08;A表达信息&#xff0c;B接受信息&#xff0c;B对信息的处理会与A所以表达的信息具有差距&#xff0c;这段差距称为信…

Stable Diffusion 多视图实践

此教程是基于秋叶的webui启动器 1.Stable Diffsuion 使用多视图需要准备一个多角度open pose 图 我给大家提供一个可使用的。 2.需要添加图片到到controlnet当中,不要选择预处理器,选择模型为openpose的模型,然后需要点选同步图片尺寸。 3.然后填写关键字可以参照一下这个…

处理时延降低24倍,联通云粒数据引擎优化实践

*作者&#xff1a;郑扬勇&#xff0c;云粒星河数据中台产品负责人 云粒智慧科技有限公司成立于 2018 年 6 月&#xff0c;是中国联通集团混改以来成立的首家合资公司&#xff0c;是中国智慧城市数智化建设者。一直以来&#xff0c;云粒智慧以数字化、智能化、集约化产品为核心&…

前端将UTC时间格式转化为本地时间格式~~uniapp写法

UTC时间格式是什么 首先我们先简单的了解一下&#xff1a;UTC时间&#xff08;协调世界时&#xff0c;Coordinated Universal Time&#xff09;使用24小时制&#xff0c;以小时、分钟、秒和毫秒来表示时间 HH:mm:ss.SSSHH 表示小时&#xff0c;取值范围为00到23。mm 表示分钟…

iOS - 资源按需加载 - ODR

一、瘦身技术大图 二、On-Demand Resources 简介 将其保存管理在苹果的服务器&#xff0c;按需使用资源、优化包体积&#xff0c;实现更小的应用程序。ODR 的好处&#xff1a; 应用体积更小&#xff0c;下载更快&#xff0c;提升初次启动速度资源会在后台下载操作系统将会在磁…

Linux 进程控制

进程创建 fork() 在linux中fork函数时非常重要的函数&#xff0c;它从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程 进程调用fork&#xff0c;当控制转移到内核中的fork代码时&#xff0c;内核完成以下工作&#xff1a; 分配新的内存块和内核数据…

华为OD:敏感字段加密

题目描述&#xff1a; 给定一个由多个命令字组成的命令字符串&#xff1a; 1、字符串长度小于等于127字节,只包含大小写字母,数字,下划线和偶数个双引号&#xff1b; 2、命令字之间以一个或多个下划线_进行分割&#xff1b; 3、可以通过两个双引号”"来标识包含下划线…

koa使用Sequelize:定义数据结构

创建连接 const { Sequelize } require(sequelize);// 第一个参数&#xff1a;连接的数据库名 // 第二个参数&#xff1a;数据库的用户名 // 第三个参数&#xff1a;数据库的密码 const mysql new Sequelize(mytest, root, root, {dialect: mysql, // 这里可以改成任意…

MySQL-数据类型

MySQL-数据类型 数值类型bittinyintfloatdecimal 字符串和文本类型charvarcharblobtext 日期和时间类型enum-枚举类型set-集合类型 数值类型 数据类型说明bit(M)位类型。M指定位数&#xff0c;默认值为1&#xff0c;范围1-64.tinyint [unsigned]带符号范围:-128 - 127&#xf…