[Android]史上最强的图片选择器-GalleryFinal

news/2024/2/28 13:45:55

转自:https://segmentfault.com/a/1190000004263541?_ea=549747

首先非常感谢对GalleryFinal提出意见和想法的童鞋们,使得GalleryFinal经过重重迭代变得完善起来。

GitHub地址   Demo APK下载    

简述

GalleryFinal是一个图片选择(单选/多选)、拍照、编辑、裁剪及旋转为一身的图片选择器。使用方便,功能可自己配置,GalleryFinal还可以根据开发者的喜好来选择主题,当然也支持自定义主题。而且GalleryFinal自身并没有强制绑定某个ImageLoader,开发者可以根据自己项目给GalleryFinal配置图片加载器。GalleryFinal还放弃了startActivityForResult+onActivityResult来获取选择结果,而是采用事件回调的机制。(我觉得startActivityForResult+onActivityResult太麻烦了,同意的点个赞吧,呵呵~)。GalleryFinal经过三四个月的版本迭代,修复bug,优化需求,已经处于稳定的状态。

也许有人会问:系统不是有相册选择器吗,为什么还有做一个GalleryFinal呢,有必要吗?我告诉你很有必要。微信,QQ等等app它们都是自己带图片选择器,并没有直接调系统的图片选择器。为什么要这么做呢?我总结出一下几点:

  • 最大的问题就是兼容性了,手机厂商那么多,相册软件那么多从而引起各种奇葩的问题

  • 有些手机拍照图片倒立情况(如三星和魅族)

  • 拿到的bitmap或uri为空

  • 非常频繁出现OOM

  • 不支持多选

  • 拍照/选择图片/裁剪视乎用起来有些麻烦,加上处理一些旋转、裁剪、压缩就更加麻烦了,代码多得不行不行的。

  • 系统的图片选择UI上与自己APP样式不统一

  • 有些不支持图片旋转

  • ....

使用GalleryFinal以上问题你都不用考虑,就是这么的任性。


http://www.ppmy.cn/news/877615.html

相关文章

android背景图线,Android LinearLayout背景图片

有点晚了,但我的问题通过以下代码解决了. 使用ImageView设置我的背景图像,然后在其上显示线性布局. android:layout_width"fill_parent" android:layout_height"fill_parent" android:orientation"vertical" > android:layout_width"wra…

第四关——柯南的小学时光

input()函数 1.input()函数的使用 input()函数是输入函数,当你在函数的括号内写出问题时,input()函数会将此问题原样显示在屏幕上,并在终端区域等待你针对此问题的回答。input()函数输入的值必…

react native(九)修改警告 解决图片加载的坑

图片加载陷入了坑中,不管是本地图片还是网络图片,都没法显示,但是程序并没有一片红,我也十分确定我的图片加载代码正确,以我柯南附体的指挥,我判定与警告有关,哈哈 自从昨天开始就存在两个⚠️…

java 实现图片百分比_[Java教程]图片载入状态判断及实现百分比效果loading

[Java教程]图片载入状态判断及实现百分比效果loading 0 2017-10-14 11:00:11 前言 一些大的外部资源会导致页面加载速度慢,这时候一般会加上loading效果;这里实现的是根据图片加载进度的百分比loading效果 如何判断图片加载的状态 1、onload onerror 推…

java图片上传面试题,面试题:我现在上传图片的时候提前预览到图片怎么办?...

今天我也来标题党一会,用“面试题”蹭一蹭热度,主要还行想深度剖析一下,文件上传,里面的门道。 1、在web上怎么实现文件上传 在我们使用的各种类库,框架中文件上传长相多样,百花齐放,但是归根结…

java压缩图片demo

经试验,原7M的图片可压缩到50K所有 package com.zlxtk.test1;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.util.Date;import javax.imageio.ImageIO;…

轻轻绕过你的防线——霸道的柯南图片管理系统

by lake2 前些天在浏览某个站点的时候,一时手痒,在URL后面加了个“ and 12”意在看看这系统有没有SQL注射漏洞,哪晓得浏览器弹出两个对话框然后无限的弹出窗口。只得赶紧结束掉进程,郁闷,我用的TT浏览器,…

node 图片加水印

1单张图片加水印 使用Node进行图片水印添加,需要借助一个Node中的库: images 1 本地安装images库 npm install images -D 2 创建Img.js var images require(images); var path require(path); var watermarkImg images(water_logo.jpg); var sou…

swiper 弹出图片_Swiper实现图片预览效果

作者:娇娇jojo 日期:2018年3月13日 一、介绍 先用几张图来和大家描述一下什么是图片预览效果吧。 第一张图: 第二张图: 第三张图: 第四张图: 图一:图片列表; 图二:点击列表中 “小猫” 这张图片,会弹出图二这样的预览图; 图三:对图二向左或向右滑动会出现图三的样子…

c 将图片存入到mysql数据库中_图片插入数据库

一般瀑布流插件有配置支持动态从数据库中读取数据的,你认真看下API。 如果确认你的这个不支持动态读取,只能换一个瀑布流插件了,如这个: (function ($) { var //参数 setting { column_width: 240, //列宽 column_className: wat…

流放者柯南服务器文件,流放者柯南服务器设置怎么保存

流放者柯南服务器设置怎么保存 内容精选 换一换 本章介绍如何在管理控制台购买GaussDB(for openGauss)实例,并通过内网使用弹性云服务器连接GaussDB(for openGauss)实例。GaussDB(for openGauss)提供gsql工具帮助您在命令行下连接数据库,您需要提前创建一…

力扣C++|一题多解之数学题专场(1)

目录 7. 整数反转 9. 回文数 12. 整数转罗马数字 13. 罗马数字转整数 29. 两数相除 7. 整数反转 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 -如果反转后整数超过 32 位的有符号整数的范围 [2^31, 2^31 -1] ,就返回 0。…

Zookeeper概述及部署

Zookeeper概述及部署 一、Zookeeper 定义二、Zookeeper 特点三、Zookeeper 数据结构四、Zookeeper 应用场景五、Zookeeper选举机制● 第一次启动选举机制● 非第一次启动选举机制 六、部署 Zookeeper 集群1.安装前准备2.安装 Zookeeper 一、Zookeeper 定义 Zookeeper是一个开源…

防止程序多开方法

最近,一个公司项目要求防止程序多开,采用了几种方法,效果还行。 一、使用Mutex 1、原理 创建一个互斥体,并检查它是否已经有拥有者,如果有,表明互斥体已经建立(程序已经启动)&#…

测试点击屏幕次数的软件_无需越狱,iOS 任意摆放主屏幕软件图标方法

iOS 设备的用户都知道,如果想像安卓手机一样任意摆放主屏幕的软件图标,大部分都需要越狱才能实现,今天给大家分享一个快捷指令,无需越狱就能实现图标任意摆放。 效果图 设置教程 其实这个方法就是要在设备的主屏幕添加纯色背景的墙…

mac系统终端运行python文件

1.在要运行的python文件首行里添加python解释器路径代码 代码: #!/usr/bin/env python3 注意:上面代码中的python3是对应当前的python版本 例子: 2.复制要运行的python文件位置,在终端使用代码进入要运行的文件位置 终端运行代码&…

【可解释学习】PyG可解释学习模块torch_geometric.explain

PyG可解释学习模块torch_geometric.explain PhiloshopyExplainerExplanationsExplainer AlgorithmExplanation Metrics参考资料 torch_geometric.explain是PyTorch Geometric库中的一个模块,用于解释和可视化图神经网络(GNN)模型的预测结果。…

@color/colorPrimary @color/colorPrimaryDark @color/colorAccent not found

将color改为?android:attr<?xml version"1.0" encoding"utf-8"?> <resources><!-- Base application theme. --><style name"AppTheme_" parent"Theme.AppCompat.Light.NoActionBar"><!-- Customize yo…

微信小程序使用colorUI框架

使用colorUI框架&#xff0c;首先我们需要下载下来 下载地址&#xff1a; GitHub地址&#xff1a;https://github.com/weilanwl/ColorUI/ 下载下来解压我们会得到如下文件 我们把demo文件夹导入到我们的微信开发者工具中&#xff1a; template文件夹是一个使用colorUI的&…

Python color logging

#!/tool/python/3.6.12/bin/python3""" File: logger.py Author: Date: Contact: Desc: define Log class """import loggingclass ColorHandler(logging.StreamHandler):"""彩色日志&#xff0c;根据不同级别的日志显示不同颜色…
最新文章