照片笔记 PhotoNoter Material Design风格的开源照片笔记

[复制链接]
来自: MrlLee 分类: Android精品源码 上传时间: 2016-7-14 12:23:53
Tag:照片笔记 Material Design 开源

项目介绍:

照片笔记 PhotoNoter

Material Design风格的开源照片笔记。

编译'signingConfig.storeFile' does not exist

如果编译不过,错误日志是:

[Java] 查看源文件 复制代码
Error:A problem was found with the configuration of task ':app:packagexxxxDebug'.

File ‘/xxxxxxxxxx/debug.keystore' specified for property 'signingConfig.storeFile' does not exist.

将/app/build.gradle中的下面代码注释或者删除

[Java] 查看源文件 复制代码
signingConfigs {
    debug {
        //storeFile file("debug.keystore")
    }
}

release.properties (No such file or directory)

如果编译不过,错误日志是:

[Java] 查看源文件 复制代码
What went wrong:

A problem occurred evaluating project ':app'.

xxxxxxxx/app/release.properties (No such file or directory)

将/app/build.gradle中的下面代码注释或者删除

[Java] 查看源文件 复制代码
signingConfigs {
    release {
        //Properties p = new Properties()
        //p.load(new FileInputStream(project.file('release.properties')))
        //storeFile file(p.storeFile)
        //storePassword p.storePassword
        //keyAlias p.keyAlias
        //keyPassword p.keyPassword
    }
}

NDK

如果编译不过,错误日志是跟NDK有关的:

开发环境的ndk版本是android-ndk-r10e
Others

如果还是不行,请将错误日志issues,谢谢!

应用截图动画gif

界面

Dribbble

有些界面是模仿Dribbble网站App效果图实现的:

Dribbble

技术点
  • 整体项目MVP结构(1.2.0之前是 MVC )。
  • Dagger2 。
  • 相机部分,API>=21使用 Camera2 ,API<21使用 Camera 。
  • 相机的状态机,聚焦状态机。
  • 照片缓存分为两种,一个是大图,一个是小图,小图是相册界面缩略图的时候加载的,大图是查看图片的时候加载的。
  • 图片处理。但是在 App 中,发现很多这方面的问题我还没有解决。比如红米1s后置摄像头800W,那么拍一张图是3M左右,但是 Camera 的照片的0度是我们正常手机视角的90度。那么我们需要把这个3M的图片给翻转过来,但是呢又不想失分辨率,就会导致OOM!那么现在的解决办法是设置EXIF信息,然后显示图片通过 Exif 信息去旋转角度。
  • 沙盒。每次拍完照都是先把数据放到沙盒数据库中,然后再到服务中去作图,做完的话再从数据库中删除掉。作图的 Service 是和 Camera 那个 Activity 绑定的(bind方式),当不再拍照的时候就退出了 Service,然后回到相册界面的时候会去判断沙盒数据库中是否有没有做完的图,没有做完的话另外启一个进程的 Service 继续作图。
  • Activity 退出和进入的动画。这块弄了很久,主要是想模仿 Android5.0 的那种,但是有些界面做出来超级卡。
  • 一些 UI 的动画,比如 “ 意见反馈”、 “ 语音输入” 这里面的动画。
  • 主题设置,沉浸式状态栏(Android5.0)。
  • 切换主题。
  • 可以滑动 item 和可以拖放 item 的 ListView(SlideAndDragListView)。
  • RxJava + RxAndroid(RxCategory/ RxPhotoNote/ RxSandBox/ RxFeedBack/ RxUser)。
  • dex分包处理。第一次开启App的时候 install dex + dexopt 时间很长,所以第一次开启的时候另启进程专门做这个事情,防止主线程因为时间长而发生ANR。至于自己去配置主dex是为了以防自动分包ClassNotFound异常。
  • Dex自动分包脚本。
  • Android 6.0 权限适配。
  • NDK && AIDL。
更新版本说明

ChangeLog

致谢

相关源码推荐:

我来说两句
所有评论(44)
einnius2012 2016-7-14 12:34:33
写的真的很不错
回复
aliouswang 2016-7-14 12:52:31
不错不错,楼主辛苦了。。。
回复
snowqoo228 2016-7-14 13:14:52
支持,感谢,祝巴士越来越好~
回复
是个宝宝 2016-7-14 13:20:03
感谢大神~
回复
manmanyun 2016-7-14 13:22:24
mark,收藏了
回复
东西南北 2016-7-14 13:33:07
写的真的很不错
回复
forever111 2016-7-14 13:47:48
写的真不错,正需要呢
回复
2750 0 0
代码贡献英雄榜
用户名 下载数
联系我们
首页/微信公众账号投稿
帖子代码编辑/版权问题
QQ:435399051,1294855032
如何获得代码达人称号?
如何成为签约作者?
领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:1294855032@qq.com

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )