Android开发之组件GridView简单使用方法示例
作者:水中鱼之1999 发布时间:2022-11-19 09:35:05
标签:Android,组件,GridView
本文实例讲述了Android开发之组件GridView简单使用方法。分享给大家供大家参考,具体如下:
案例:简单的图片浏览器,保存图片到相册
保存图片到相册 方法代码:https://www.jb51.net/article/158668.htm
废话不多说先上效果;
具体实现:
首先是布局文件: 1.一个GridView(展示所有的图片) 2.一个ImageView(放选中的图片)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<!--定义一个GridView组件-->
<GridView
android:id="@+id/grid01"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:horizontalSpacing="1pt"
android:verticalSpacing="1pt"
android:numColumns="3"
android:gravity="center"/>
<!--定义一个ImageView组件-->
<ImageView
android:id="@+id/image_view"
android:layout_width="240dp"
android:layout_height="240dp"
android:layout_gravity="center_horizontal"/>
</LinearLayout>
然后是点击事件的设置:
其中arry_list只有一个ImageView放图片 代码下面给出
public class MainActivity extends Activity {
private GridView gridView;
//定义字符串数组作为提示的文本
private ImageView imageView;
private int[] photoId = new int[]{
R.drawable.huangjindiao, R.drawable.piaopiao,
R.drawable.xiaochouyu, R.drawable.paodangyu,
R.drawable.addphoto, R.drawable.huangjinxiahu
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//创建一个list对象,list对象的元素是Map
List<Map<String,Object>> listItems = new ArrayList<Map<String,Object>>();
for (int i = 0 ; i < photoId.length ; i ++ ){
Map<String,Object> photolist = new HashMap<String, Object>();
photolist.put("image",photoId[i]);
listItems.add(photolist);
}
//获取图片的imageView
imageView = (ImageView) findViewById(R.id.image_view);
//创建一个SimpleAdapter
SimpleAdapter simpleAdapter = new SimpleAdapter(this,listItems,
//arry_list只有一个ImageView放图片 代码下面给出
R.layout.array_list,
new String[]{"image"}, new int[]{R.id.image});
gridView = (GridView) findViewById(R.id.grid01);
//为gridview设置adapter
gridView.setAdapter(simpleAdapter);
//添加列表项中被选中的 *
gridView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
//显示当前被选中的图片
imageView.setImageResource(photoId[position]);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
//添加列表中被单击的 *
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//显示被单击的图片
imageView.setImageResource(photoId[position]);
}
});
//点击图片保存
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String[] PERMISSIONS = {
"android.permission.READ_EXTERNAL_STORAGE",
"android.permission.WRITE_EXTERNAL_STORAGE" };
//检测是否有写的权限
int permission = ContextCompat.checkSelfPermission(MainActivity.this,
"android.permission.WRITE_EXTERNAL_STORAGE");
if (permission != PackageManager.PERMISSION_GRANTED) {
// 没有写的权限,去申请写的权限,会弹出对话框
ActivityCompat.requestPermissions(MainActivity.this, PERMISSIONS,1);
}
try {
//创建savephoto类保存图片
SavePhoto savePhoto = new SavePhoto(MainActivity.this);
savePhoto.SaveBitmapFromView(imageView);
} catch (ParseException e) {
e.printStackTrace();
}
}
});
}
}
值得注意的一点:array_list:
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/image"
android:layout_width="100dp"
android:layout_height="100dp"
android:scaleType="fitXY">
</ImageView>
希望本文所述对大家Android程序设计有所帮助。
来源:https://blog.csdn.net/qq_43377749/article/details/84325754


猜你喜欢
- 前言自从 2017 年 C# 7.0 版本开始引入声明模式和常数模式匹配开始,到 2022 年的 C# 11 为止,最后一个板块列表模式和切
- 有个小伙伴遇到了这样一个问题,就是AutoCompleteTextView实现自动填充的功能。同时要具备手机格式化的功能。下拉列表最后一行是
- 使用例子如下,用JAVA 运行Sort1, 输入你要排序的文件路径 , 如 例子是对H:\下的文件和它所有子文件夹下的文件进行排序2, 输入
- 本文实例讲述了android从系统图库中取图片的实现方法。分享给大家供大家参考。具体如下:在自己应用中,从系统图库中取图片,然后截取其中一部
- 平时写项目的时候,java之父叫我们多打日志,我们通常使用traceId和requestId来保存完整请求的链路日志,例如市面上的skywa
- Java中重载与重写的区别首先我们来讲讲:重载(Overloading) (1) 方法重载是让类以统一的
- Java调用接口获取json数据保存到数据库今天给大家带来一个调用接口,来获取数据解析后再保存到数据库中的业务,业务中的Mapper和实体类
- 之前看到过一个数字进度条,一直想写,今天就把这个实现下,想起来也是很简单的,先看下实现的效果:思路:绘制2根线 绘制进度条的文字,不断的改变
- 今天小编来手写一个自定义圆形进度条:先看效果:首先我们在attrs属性文件中增加几个自定义属性<?xml version="
- 1、不必要的自动装箱。自动装箱是将基础数据类型转换为相应的复杂类型,在HashMap的追加删除调查中充满了自动装箱问题,因此尽量避免Hash
- 最近学习了 C#实现文件上传与下载,现在分享给大家。1、C#文件上传创建MyUpload.htm页面,用于测试<form name=&
- 一、首先下载 ZXing.Net地址是:http://zxingnet.codeplex.com/releases/view/117068然
- 描述:由于产品需求,要求含有EditText的界面全屏显示,最好的解决方式是使用AndroidBug5497Workaround.assis
- 目录前言示例参考:前言按需加载对象延迟加载实际是推迟进行创建对象,直到对其调用后才进行创建初始化,延迟(懒加载)的好处是提高系统性能,避免不
- Android 中ScrollView嵌套GridView,ListView的实例在Android开发中,经常有一些UI需要进行固定styl
- 如果需要在布局中创造一个层叠的概念,那么使用Android系统中的ViewGroup是不够的,但是可以通过改变ViewGroup的绘制顺序实
- 什么是 Retrofit ?Retrofit是Square开发的一个Android和Java的REST客户端库。这个库非常简单并且具有很多特
- 以前,如果我们希望构建支持foreach枚举的自定义集合,只能实现IEnumerable接口(可能还有IEnumerator()),返回值还
- 如下所示:from jpype import *jvmPath = getDefaultJVMPath()jars = ["./F
- 一、项目简述本系统功能包括:通知公告,老人管理,护工管理,问答管理等等功能。二、项目运行环境配置: Jdk1.8 + Tomcat8.5 +