Android高仿微信图片选择功能的PhotoPicker
类似于微信修改头像的功能基本上每个app都会有,以前公司开发的项目就有修改头像的功能,但是用的Android系统自带的图片选择器。用Android系统的图片选择器有个好处就是稳定,不会有什么问题。但也有它的缺点,比如不可定制,我们想要修改一下符合自己app的风格无法做到。
既然大部分app都要用到图片选择器,为啥我不自己写一个呢?难不成每次都用系统自带的?那显得太没水平。所以,我就有了一个自己编写一个图片选择器的想法,以后只要有项目需要这个功能,直接拿来用就行了,这多爽!
其实github上也有很多大牛写的图片选择开源库,虽然大家一直都推崇不要重复造轮子这个观念,但是我却不这么认为,同样是轮子,也有不同价格、不同品牌的呢,难不成有了一个制造商生产了轮子,其他厂商就没必要做了吗?所以说,重复造轮子也是有意义的,至少你知道轮子是怎么造的。
好了,闲话不多说,先看看效果图:
1、图片选择效果
2、弹出文件夹选择效果:
这里博主还是只模范微信的头像选择功能,也就是单张图片的选取。而微信发送图片消息的多张图片选择,暂时还没有做。主要是博主现在要学习C++,要快速熟悉cocos2dx的开发,没有时间去弄。后面有时间会把多图选择功能加上。
博主测试3部手机,vivo x3s 826张图片、联想A800 1231张、中兴V955 762张均为出现OOM,且图片加载很流畅。由于测试覆盖率不够,程序难免还会存在一些bug,如果有还望各位不吝指正,谢谢!
这里代码我就不贴了,需要的直接去博主github上fork源码,欢迎fork和star。
源码地址:https://github.com/liuling07/PhotoPicker
原创内容,转载请注明出处:http://www.liuling123.com/2015/11/android-photo-picker.html
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
手把手教你用Python库Keras做预测(附代码)
当你在Keras中选择好最合适的深度学习模型,就可以用它在新的数据实例上做预测了。但是很多初学者不知道该怎样做好这一点,我经常能看到下面这样的问题: “我应该如何用Keras对我的模型作出预测?” 在本文中,你会学到如何使用Keras这个Python库完成深度学习模型的分类与回归预测。 看完这篇教程,你能掌握以下几点: 如何确定一个模型,为后续的预测做准备 如何用Keras对分类问题进行类及其概率的预测 如何用Keras进行回归预测 现在就让我们开始吧 本文结构 教程共分为三个部分,分别是: 模型确定 分类预测 回归预测 模型确定 在做预测之前,首先得训练出一个最终的模型。你可能选择k折交叉验证或者简单划分训练/测试集的方法来训练模型,这样做的目的是为了合理估计模型在样本集之外数据上的表现(新数据) 当评估完成,这些模型存在的目的也达到了,就可以丢弃他们。接下
- 下一篇
Go的CSP并发模型实现:M, P, G
最近抽空研究、整理了一下Golang调度机制,学习了其他大牛的文章。把自己的理解写下来。如有错误,请指正!!! golang的goroutine机制有点像线程池: 一、go 内部有三个对象: P对象(processor) 代表上下文(或者可以认为是cpu),M(work thread)代表工作线程,G对象(goroutine). 二、正常情况下一个cpu对象启一个工作线程对象,线程去检查并执行goroutine对象。碰到goroutine对象阻塞的时候,会启动一个新的工作线程,以充分利用cpu资源。所有有时候线程对象会比处理器对象多很多 我们用如下图分别表示P、M、G 在单核情况下,所有goroutine运行在同一个线程(M0)中,每一个线程维护一个上下文(P),任何时刻,一个上下文中只有一个goroutine,其他goroutine在runqueue中等待。一个goroutine运行完自己的时间片后,让出上下文,自己回到runqueue中(如下图左边所示)。 当正在运行的G0阻塞的时候(可以需要IO),会再创建一个线程(M1),P转到新的线程中去运...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果