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
0
投稿
猜你喜欢
- 一、简介SHA-256 是 SHA-2 下细分出的一种算法。截止目前(2023-03)未出现“碰撞”
- 本文实例讲述了Android使用onCreateOptionsMenu()创建菜单Menu的方法。分享给大家供大家参考,具体如下:Andro
- 笔者在使用Entity Framework中的Scaffolding机制自动创建拓展名为mdf的数据库及表单时,遇到如下的错误:A file
- 本文实例讲述了Android编程简单实现ImageView点击时背景图修改的方法。分享给大家供大家参考,具体如下:在使用ImageView时
- 本文实例为大家分享了Android实现上下菜单双向滑动的具体代码,供大家参考,具体内容如下这是研究了网上大神双向左右滑动后实现的上下双向滑动
- 本文为大家分享了C#实现窗体全屏的具体代码,供大家参考,具体内容如下方法一:不过此方法有时候会出现莫名的bug//程序启动路径,与生成程序的
- spring boot 使用POI读取Excel文件Excel文件目录Excel模板文件存了resourse目录下,如下图:<depe
- 1.背景在项目中有些敏感信息不能直接展示,比如客户手机号、身份证、车牌号等信息,展示时均需要进行数据脱敏,防止泄露客户隐私。脱敏即是对数据的
- 前面博客我们在讲解数组中,知道数组作为数据存储结构有一定的缺陷。在无序数组中,搜索性能差,在有序数组中,插入效率又很低,而且这两种数组的删除
- IOS与网页JS交互随着移动APP的快速迭代开发趋势,越来越多的APP中嵌入了html网页,但在一些大中型APP中,尤其是电商类
- 先看一下Android悬浮按钮点击回到顶部的效果:FloatingActionButton是Design Support库中提供的一个控件,
- 前言RxJava 在 GitHub 主页上的自我介绍是 "a library for composing asynchronous
- 本文实例讲述了C#反射应用。分享给大家供大家参考。具体如下:通过反射实现多系统数据库的配置通过定义接口,反射实例化配置的节点的值配置App.
- 使用可以绑定数据源的控件我们需要有实现了IList接口的类作为数据源,我们有很多的方法,比如使用ArrayList或者List的泛型类都是很
- 在Mybatis的动态SQL和${}形式的参数中都用到了OGNL表达式。Mybatis常用的OGNL表达式如下1、e1 or e2:或<
- 本文实例讲述了C#动态加载dll扩展系统功能的方法。分享给大家供大家参考。具体分析如下:动态加载dll,主要是为了扩展功能,增强灵活性而实现
- 在linux主机部署Eureka高可用方案的时候,发现注册到服务中心的服务IP是随机的,由于主机的网卡是多个,随机的IP并不是自己想要的,上
- 一、静态静态的定时任务可以直接使用注解@Scheduled,并在启动类上配置@EnableScheduling即可@PostMapping(
- 具体代码如下所示:private string GetWeekName(DayOfWeek week) { &nb
- 有一段时间,正则表达式学习很火热很潮流,当时在脚本之间平台一天就能看到好几个正则表达式的帖子,那段时间借助论坛以及Wrox Press出版的