iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android 高仿QQ图片选择器
  • 465
分享到

Android 高仿QQ图片选择器

选择器选择Android 2022-06-06 07:06:45 465人浏览 安东尼
摘要

当做一款APP,需要选择本地图片时,首先考虑的无疑是系统相册,但是Android手机五花八门,再者手机像素的提升,大图无法返回等异常因数,导致适配机型比较困难,微信、QQ都相继

当做一款APP,需要选择本地图片时,首先考虑的无疑是系统相册,但是Android手机五花八门,再者手机像素的提升,大图无法返回等异常因数,导致适配机型比较困难,微信、QQ都相继的在自己的APP里集成了图片选择功能,放弃了系统提供的图片选择器,这里仿造QQ做了一个本地图片选择器,PS:之前有人说"仿"写成“防”了,今儿特意注意了下,求不错。

先上一张效果图,无图无真相啊~~~

实现的效果大概是这样的:

1.单选:跳转到本地图片选择文件夹,选择文件夹后,进入到该文件夹下的所有图片,选择某张图片后,返回改图片地址信息

2.多选:跳转到图片文件夹,选择一个文件夹,选择图片,点击右上角的小圆圈,选中该图,点击图片其他区域,查看大图,点击预览,查看已选图片,可以跨文件夹选择图片。

为了达到这效果,需要做几件事:

1.读取本地所有 有图片的文件夹:

这里用ContentResolver读取媒体文件


String[] columns = {MediaStore.Images.Media._ID, MediaStore.Images.Thumbnails.DATA, MediaStore.Images.Media.DATA, MediaStore.Images.Media.BUCKET_ID,
MediaStore.Images.Media.BUCKET_DISPLAY_NAME, "COUNT(1) AS count"};
String selection = "0==0) GROUP BY (" + MediaStore.Images.Media.BUCKET_ID;
String sortOrder = MediaStore.Images.Media.DATE_MODIFIED;
Cursor cursor = contentResolver.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, selection, null, sortOrder);

这是一个简单的sql查询语句,按文件夹分组,并返回文件夹下图片数。

2.读取指定文件夹下所有图片:

当选择某一目录时,需要读取该目录下所有图片了。


String[] columns = new String[]{MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA};

String whereclause = MediaStore.Images.ImageColumns.DATA + " like'" + folderPath + "/%'";
Log.i("queryGalleryPicture", "galleryPath:" + folderPath);
Cursor corsor = c.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, whereclause, null, null);

这里的查询语句是根据文件名字来过滤的,只要图片路径包含文件夹路径的,则为该文件夹下的图片

3.UI交互

首先在展示所有包含图片的文件夹时,异步加载有图片的文件夹,读取成功后列表展示,这里用的RecyclerView展示列表信息,点击某一目录时,在读取改目录下的图片,在图片展示页里,需要注意的是,每次点击判断当前点击图片是否已在选择列表中,若在,删除,不在,添加。这里图片加载用了开源框架ImageLoader


if (mSelectlist.contains(imageBean)) { //点击的item为已选过的图片时,删除
mSelectlist.remove(imageBean);
subSelectPosition();
} else { //不在选择列表里,添加
if (mSelectlist.size() >= maxCount) {
Toast.makeText(mContext, mContext.getResources().getString(R.string.publish_select_photo_max, maxCount), Toast.LENGTH_SHORT).show();
return;
}
mSelectlist.add(imageBean);
imageBean.selectPosition = mSelectlist.size();
}
//通知点击项发生了改变
notifyItemChanged(position);

同时没删除一张图片,图片上的序号相应的作改变,然后通知改变项更新UI。

不同Activity跳转时,因为要传递图片列表List,list里是自定义实体类,刚开始考虑过用intent传递,但是intent传递后,通过list.get(positon).contains比较是否同一对象时,始终是不同对象,大家可以去验证下。所以这里定义了一个观察者的类,去保存选择的图片和文件夹下的所有图片,同时查看大图时,若选择了一张或者取消选择了一张图,通过观察者通知更新即可



public void updateImageSelectChanged () {
setChanged();
notifyObservers(imgSelectObj);
}

好了,有了以上的,就可以使用我们的图片选择器了:

单选时,在需要的地方调用:



FolderListActivity.startSelectSingleImgActivity(this, 2);
多选时:

FolderListActivity.startFolderListActivity(this, 1, null, 9);

最后Activity的onActivityResult中接收返回的图片数据:


List<ImageFolderBean> list = (List<ImageFolderBean>) data.getSerializableExtra("list");

源码下载地址:

https://GitHub.com/jarekWang/photoselect

以上所述是小编给大家介绍的Android 高仿QQ图片选择器的全部叙述,希望对大家有所帮助!

您可能感兴趣的文章:Android实现图片选择器功能Android自定义图片选择器简单版Android实现微信的图片选择器Android仿微信图片选择器ImageSelector使用详解Android仿微信朋友圈图片选择器Android仿微信图片选择器Android图片选择器 丰富的配置选项Android仿微信照片选择器实现预览查看图片浅谈谈Android 图片选择器Android ImageSelector微信图片选择器


--结束END--

本文标题: Android 高仿QQ图片选择器

本文链接: https://www.lsjlt.com/news/23913.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android实现QQ图片说说照片选择效果
    本文实例为大家分享了Android实现QQ图片说说照片选择的具体代码,供大家参考,具体内容如下效果展示布局文件布局是很简单的,一个GridView,直接上布局:layout/activity_add_photo.xml<?xm...
    99+
    2023-05-30
    android 照片选择
  • Android高仿QQ小红点功能
    先给大家展示下效果图:代码已上传至Github:高仿QQ小红点,如对您有帮助,欢迎star~感谢绘制贝塞尔曲线:主要是当在一定范围内拖拽时算出固定圆和拖拽圆的外切直线以及对应的切点,就可以通过path.quadTo()来绘制二阶贝塞尔曲线了...
    99+
    2023-05-31
    android 小红点
  • Android PicSelector图片选择器小功能
    本文实例为大家分享了Android实现图片选择器小功能的具体代码,供大家参考,具体内容如下 效果预览 实现 需要用到的库 compile 'com.squareup.picas...
    99+
    2024-04-02
  • Android中如何使用ImageEditContainer图片选择器
    Android中如何使用ImageEditContainer图片选择器,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1. 简介ImageEditButton 和 Image...
    99+
    2023-05-30
    android
  • Android实现底部图片选择Dialog
    业务需要选择弹出对话框,然后点击选择图片。网上已经有了很多,不过感觉写的有点乱。自己这里总结一下,有需要开发者可以按照如下步骤直接使用即可。1.效果图如下点击选择照相后,弹出如下选择对话框: 2. Dialog实现布局<LinearL...
    99+
    2023-05-30
    android 图片选择 dialog
  • Android选择与上传图片之PictureSelector教程
    效果图: 【注意】Demo已更新到最新版本,并稍作调整。 之前出过一篇 Android选择与上传图片之ImagePicker教程,这个是okgo作者出的,就一般需求来讲是够了...
    99+
    2024-04-02
  • Android选择与上传图片之ImagePicker教程
    效果图: 后来又出了两篇,也可以看一下 Android选择与上传图片之PictureSelector教程 Android选择与上传图片之Matisse教程 添加依赖:...
    99+
    2024-04-02
  • Android选择与上传图片之Matisse教程
    效果图: 就目前效果图来看,好像也没什么毛病哈,其实我这个集成的过程是有点坎坷的。 而且,功能也不算是很齐全吧…主要体现在以下几个点 没有回调之后的预览 选择之...
    99+
    2024-04-02
  • android中怎么实现在相册中选择图片
    这期内容当中小编将会给大家带来有关android中怎么实现在相册中选择图片,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。首先在 activity_main.xml 文件中增加一个 Button,用来触发从...
    99+
    2023-05-30
  • Android图像选择之 PictureSelector
    一款针对Android平台下的图片选择器,支持从相册获取图片、视频、音频&拍照,支持裁剪(单图or多图裁剪)、压缩、主题自定义配置等功能,支持动态获取权限&适配Android 5.0+系统的开源图片选择框架。 废话不多。开干!! 添加依赖:...
    99+
    2023-12-22
    android PictureSelector
  • 【Flutter】Flutter 图片选择器入门:如何使用 image_picker 插件从图库选择图片、拍摄新照片
    文章目录 一、 前言二、 Flutter 和 image_picker 插件简介三、 安装和配置 image_picker 插件四、 使用 image_picker 从图库选择图片五、 使用 ...
    99+
    2023-09-16
    flutter android ios 原力计划
  • Android 打开相册选择单张图片实现代码
    Android 打开相册选择单张图片实现代码                以下就是如何在...
    99+
    2023-05-31
    android 相册 图片
  • 基于Flutter实现图片选择和图片上传
    目录内容简介图片选择插件权限申请UI 改造图片上传内容简介 本篇将介绍 Flutter 中如何完成图片上传,以及上传成功后的表单提交。涉及的知识点如下: 图片选择插件wechat_a...
    99+
    2024-04-02
  • Android如何选择图片或视频进行循环播放
    这篇文章主要介绍Android如何选择图片或视频进行循环播放,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!项目要求对本地图片或者视频进行轮播,功能实现完成后发现只是在模拟器上运行ok,后来发现是文件路径的原因。文件u...
    99+
    2023-05-30
    android
  • react如何实现图片选择
    这篇文章主要讲解了“react如何实现图片选择”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react如何实现图片选择”吧!react实现图片选择的方法:1、使用import引入“react...
    99+
    2023-07-05
  • JS如何仿JQuery选择器功能
    小编给大家分享一下JS如何仿JQuery选择器功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!JQuery作为应用最广的JS库...
    99+
    2024-04-02
  • Android 开发中如何模仿一个微信拍摄和图像选择界面
    这篇文章将为大家详细讲解有关Android 开发中如何模仿一个微信拍摄和图像选择界面,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 插件运行后的画面如下:下面这张图对图像进行筛选,...
    99+
    2023-05-31
    android roi
  • Android实现图片高斯模糊
    本文实例为大家分享了Android实现图片高斯模糊的具体代码,供大家参考,具体内容如下 原图: 高斯模糊后: FastBlur.java import android.graph...
    99+
    2024-04-02
  • uni-app开发小程序使用uni.chooseMedia选择图片,安卓手机无法选择图片
    uni-app开发小程序时,使用uni.chooseMedia选择图片,苹果手机是正常的,安卓手机无法打开手机选择图片 问题复现解决方法!!我的反思与总结 问题复现 一、在小程序中,选择图片并上传,是一个很常见的功能; 二、最近...
    99+
    2023-08-16
    uni-app 小程序 android uni.chooseMedia
  • Flutter图片与文件选择器使用实例
    目录引言一、image_picker1、安装2、使用3、属性4、注意二、flutter_document_picker1、安装2、使用总结引言 我已经一个多星期没碰过电脑了,今日上班...
    99+
    2023-01-30
    Flutter图片文件选择器 Flutter 选择器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作