由于需要用到“删除图片”的功能,需要写这样一个小demo:

对之前博文的修改

发现imageView监听点击事件 效果实在不敢恭维,因此换个方式:设置Touch的监听函数, 下面的Demo没有改过来哈,自行更改哈~~~

注意当你点击的时候会产生两个Touch,一个Down,一个Up,只要处理一个就可以了~~~

imageView2.setOnTouchListener(new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {// TODO Auto-generated method stubif (event.getAction() == MotionEvent.ACTION_DOWN){Log.d("dsd", "被点了");Log.d("dsd", "data的大小: " + data.size() + ", position: " + position);data.remove(position);simpleAdapter.notifyDataSetChanged();//gridView.setAdapter(simpleAdapter);return true;}return false;}});

效果图:点击右上方的“X”即可将图片从GridView中删除

其实每个Item的布局文件时个FrameLayout, 里面有两个ImageView,一个在底一个在上

/gridviewtest/res/layout/gridview_item.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent" ><ImageView android:id="@+id/imageview1"android:layout_width="fill_parent"android:layout_height="fill_parent"android:scaleType="fitXY"android:background="#F12A3A"/><ImageViewandroid:id="@+id/imageview2"android:layout_width="40dip"android:layout_height="40dip"android:layout_gravity="right|top"/></FrameLayout>

主activity_main.xml

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><GridView android:layout_width="fill_parent"android:layout_height="fill_parent"android:id="@+id/my_gridview"android:listSelector="@android:color/black"android:verticalSpacing="10dp"android:horizontalSpacing="10dip"android:numColumns="3"android:stretchMode="columnWidth"/></RelativeLayout>

MainActivity.java

package com.example.gridviewtest;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.database.DataSetObserver;
import android.graphics.Bitmap;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.SimpleAdapter;
import android.widget.Toast;public class MainActivity extends Activity {private List<Map<String, Object>> data = null;private GridViewAdapter simpleAdapter = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);GridView gridView = (GridView) findViewById(R.id.my_gridview);data = new ArrayList<Map<String,Object>>();Map<String, Object> map = new HashMap<String, Object>();map.put("imageview1", R.drawable.tt);map.put("imageview2", R.drawable.cha);data.add(map);data.add(map);data.add(map);data.add(map);data.add(map);data.add(map);data.add(map);simpleAdapter = new GridViewAdapter(getApplicationContext(), data, R.layout.gridview_item, new String[]{"imageview1","imageview2"}, new int[]{R.id.imageview1,R.id.imageview2});gridView.setAdapter(simpleAdapter);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}public void addItem(Bitmap bitmap) {Map<String, Object> item = new HashMap<String, Object>();item.put("imageview1", bitmap);//添加图像item.put("imageview2", R.drawable.cha);data.add(item);simpleAdapter.notifyDataSetChanged();}private class GridViewAdapter extends SimpleAdapter{private Context context = null;private int pos;public GridViewAdapter(Context context,List<? extends Map<String, ?>> data, int resource,String[] from, int[] to) {super(context, data, resource, from, to);this.context = context;// TODO Auto-generated constructor stub}@Overridepublic View getView(final int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubView view = super.getView(position, convertView, parent);ImageView imageView = (ImageView) view.findViewById(R.id.imageview2);imageView.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubToast.makeText(context, "我被点击了", Toast.LENGTH_SHORT).show();data.remove(position);simpleAdapter.notifyDataSetChanged();}});return view;}}
}

demo源码:http://download.csdn.net/detail/u011133213/5914887

转载于:https://www.cnblogs.com/james1207/p/3253758.html

带叉叉的GridView相关推荐

  1. IE10以上input自带的叉号和眼睛

    从IE 10开始,type="text" 的 input 在用户输入内容后,会自动产生一个小叉叉(X),方便用户点击清除已经输入的文本:type="password&qu ...

  2. 使用多种方法在Word方框中打对勾√和叉叉×

    我们平常在一些金融机构填写表格的时候,都会看到一些表格上带有许多特殊符号,比如,最常见的就是方框中打钩或打叉这种符号.那这种符号是如何输入出来的呢?今天,易老师就来为大家分享几种在方框中打对勾和叉的技 ...

  3. python画大对勾_多种方法告诉你!Word如何在方框中打对勾√和叉叉×

    我们平常在一些金融机构填写表格的时候,都会看到一些表格上带有许多特殊符号,比如,最常见的就是方框中打钩或打叉这种符号.那这种符号是如何输入出来的呢?今天,易老师就来为大家分享几种在方框中打对勾和叉的技 ...

  4. 剑网3指尖江湖开局门派选TA最好 叉叉助手伴你快意江湖

    万众期待的<剑网3:指尖江湖>将于6月12日上线!在国创武侠网游界,剑网三的大名可谓无人不知无人不晓.该作是西山居以端游IP研发的一款角色扮演类手游,有别于大部分角色扮演游戏的单人物多职业 ...

  5. 宇宙最帅叉叉 队伍简介

    队名 宇宙最帅叉叉 队员学号 郭旭(队长)3116005132 何卓仟3116005134 韦智锋3116005156 夏翔3116005158 邵伟源3116005152 王锴3116005154 ...

  6. 清除IE10下input的叉叉(X)和密码输入框的眼睛图标

    从IE 10开始,type="text" 的 input 在用户输入内容后,会自动产生一个小叉叉(X),方便用户点击清除已经输入的文本, 如下图: 对于type="pas ...

  7. IE input X 去掉文本框的叉叉和密码输入框的眼睛图标

    从IE 10开始,type="text" 的 input 在用户输入内容后,会自动产生一个小叉叉(X),方便用户点击清除已经输入的文本 对于type="password& ...

  8. eclipse导入项目会有红叉叉

    eclipse导入项目会有红叉叉 我这边以导入的是SpringMVC项目为例.下面有很多图片!!! eclipse导入项目后,jsp页面都是红叉叉 注意: 有一些情况有红叉叉的情况,是因为字符集,要把 ...

  9. android 叉叉助手 弹幕原理

    叉叉助手能实现从它的app打开另外的app,并实现弹幕,请问下这种弹幕效果是用的什么技术呢?

  10. 人族机器人叉兵_星际争霸兵种体积和伤害判断:叉叉小体积为什么运输机占2单位?...

    星际争霸这个游戏有个十分有趣的设定,就是有些兵种的伤害体积和运输体积不一样,相信很多人也见过这种情况. 比如一个人族运输机可以装载4个机器人,从运输体积来看应该是中型单位,但是它被虫族地堡攻击一下是4 ...

最新文章

  1. 3D 激光雷达地图相对精度自动评价算法
  2. 200多个js技巧代码
  3. [蓝桥杯2016决赛]一步之遥-枚举
  4. 我对计算机网络的期待,表白对女朋友说的情话短句 我愿是你最期待的风景线...
  5. THOR:MindSpore 自研高阶优化器源码分析和实践应用
  6. P2639 [USACO09OCT]Bessie的体重问题 【背包问题】
  7. jsp中为什么有时out.write不能写,为什么?
  8. shell 启动进程 问号_shell的问号
  9. python dbf转excel_如何在python中将dbf转换为csv?
  10. iOS支付知识及调试技巧:【支付流程 预授权 银行卡验证反洗钱敏感信息的脱敏规范】2、安全设计Checklist(短信验证码、图形验证码、密码管理、身份验证、会话安全、敏感信息、接口安全)
  11. TBase集群安装配置
  12. 陈旿 计算机网络,西北工业大学陈旿教授应邀来校作网络信息安全讲座
  13. 放弃OneNote,拥抱 Obsidian
  14. 5道String面试题,能全答对的人不到10%!(附答案)
  15. 【转载】软件质量报告模板-产品质量度量
  16. 笔记:centos7的目录挂载,重要目录,/etc目录下重要文件
  17. wps 符号操作(仅符号)
  18. wordpress友联_为你的wordpress添加独立的友情链接页面吧
  19. 【秋招之操作系统及计算机网络】
  20. 万佳安联手腾讯云,传统安企开启 AI 新征程

热门文章

  1. MyEclipse发布项目更改项目名
  2. win2003server域控服务器安装及设置
  3. docker api java_docker-java Docker的java API
  4. VM两个虚拟机之间的通讯测试
  5. java线程学习笔记
  6. 长连接和端连接 心跳包机制
  7. linux nmon安装
  8. 状态位字段使用char(1)还是tinyint(1)?
  9. 【渝粤教育】国家开放大学2018年春季 7408-21T多媒体软件制作与使用 参考试题
  10. 【sklearn第一讲】scikit-learn 简介