Git Product home page Git Product logo

androidalbum's Introduction

AndroidAlbum

库如其名,做过企业的应用已经有三四个,但凡所有应用基本都有跳转到相册或者调用系统拍照的功能(例如所有应用都可以上传头像)。因此,为了方便公司或者自己的开发,抽空准备整理出一个比较完善的库,方便以后开发可以随时拉取代码。如果你对这部分的代码感兴趣,欢迎引入使用,如果引用过程中发现遇到什么闪退,麻烦在Github上给我提个issue,我会尽快定位修复。

最新更新(最后编辑于2016-11-08)

  • 重新整理项目结构,方便童鞋们导入运行。

目前已有功能

  • 展示系统所有带图片的目录,以及展示图片目录下所有图片

  • 点击图片预览大图功能,支持左右滑动切换和缩放功能

  • 闪退日志本地化存储功能,方便开发者本地查看

  • 腾讯bugly SDK的引入,用于上报crash的日志,方便远程定位错误

  • 图片预览界面添加了选图功能,预览页单击图片会出现沉浸模式(Immersive-Mode ,Android 4.4开始有的系统特性)

目前的效果

  • 本地图片选择功能

本地图片选择功能

  • 图片详情预览页面,添加选图功能和沉浸模式(Immersive-Mode)效果

选图功能和沉浸模式效果

闪退日志处理

1.本地闪退日志处理

本地化存储闪退日志信息除了闪退的log外,还包含:设备厂商,设备名称,系统版本号,app版本号,设备id(IMEI)等。发生闪退后可以通过文件浏览器在SD卡上找到报错的log信息。(目前闪退日志是存放到SD下的album目录下的crash目录中。想要自己指定到其他目录的,可以在AlbumApplication中的configCollectCrashInfo函数)

闪退日志命名格式:发生闪退的时间(yyyyMMddHHmm 年月日时分秒).log

闪退后生成日志

2.闪退日志回传服务器处理

目前已经提供闪退日志回传到远程服务器的接口,有需要可以自行在AlbumApplication配置作如下实现!(发生闪退时,会回调onCrash方法,可以在此方法中讲闪退信息传回服务器)

配置log回传服务器

3.第三方上报crash功能的SDK引入

目前已经引入大鹅厂的Bugly(不得不佩服鹅厂的科技,真心牛逼)。这里引入第三方SDK仅仅只是为了跟踪一些BUG,并没有其他意图,不需要的童鞋可以自行移除掉。

引用第三方库

一些拓展处理

  • 为了方便项目的拓展,对引入的一些第三方库进行多加一层的抽象封装。如:当前库中引用的加载图片框架采用了Android-Universal-Image-Loader,为了降低项目对具体载图框架的依赖,特地使用工厂模式且加多了一层ImageLoaderWrapper对框架进行抽象解耦,这样为我后续替换其他加载图片框架节约了修改代码的成本。

  • 项目的编码设计采用了MVP架构,尽量的分离业务和UI,使得UI层的Activity和Fragment和业务层的代码显得松耦合。

androidalbum's People

Contributors

d-clock avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

androidalbum's Issues

build.gradle 最外层的 缺失

check out 编译有如下错误:
Plugin with id 'com.android.application' not found
楼主的最外层的build.gradle 好像没有,跟一般的格式不太一样。

拼写错误

在readme文件中的标题,应该是AndroidAlbum而不是AndroidAblum。

预览图片会出现 TransactionTooLargeException

java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 573836 bytes
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:4238)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6823)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1557)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1445)
Caused by: android.os.TransactionTooLargeException: data parcel size 573836 bytes
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:628)
at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:4206)
at android.app.ActivityThread$StopInfo.run(ActivityThread.java:4230)
... 7 more

当某个 Album 里面的 item 数量超过一定的时候,在预览图片的时候会发生这个问题哦

用的是 Glide,是在 跳转 ImagePreviewActivity 时抛出的,自己搞了很久,没解决,来求助大佬。

图片显示不出来

图片显示不出来,我在UniversalAndroidImageLoader里把
if (imageUrl.startsWith(HTTPS)) {
String uri = ImageDownloader.Scheme.HTTPS.wrap(imageUrl);
ImageLoader.getInstance().displayImage(uri, imageView, options);
} else if (imageUrl.startsWith(HTTP)) {
String uri = ImageDownloader.Scheme.HTTP.wrap(imageUrl);
ImageLoader.getInstance().displayImage(uri, imageView, options);
}
注释掉就可以显示图片,这个 ImageDownloader.Scheme.HTTP.wrap有什么关系吗

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.