做了一款App,本来是毕业设计但是毕业的时候还没有做完,因为大部分时间都改论文去了,你们都懂的。现在毕业了在工作之余把App基本上做完了。为什么说基本上呢,因为我觉得还有很多功能还没实现,还要很多bug,还要很多东西有待研究。我还会继续更(ren)新(jian)版(bu)本(chai)的,即使没多少人下载~!

本来当时命题的时候想的是做学校范围内的照片笔记App,因为毕竟我们上课的笔记都是用手机拍下来的,有时候还会录像,然后会有个小小的社交,类似超级课程表那样的,但是其目的是分享自己上课的时候拍摄的笔记,考试前复(yu)习的时候更方便。但是时间不够没有做成诶,服务器那块PHP也基本上忘的差不多了,而且我也没有服务器。。。

App

http://android.myapp.com/myapp/detail.htm?apkName=com.yydcdut.note

(可以直接下载)

目前就上了应用宝和Flyme的商店,因为身份证拿回来老家处理档案和户口去了,所以没法申请开发者。

应用信息

习惯了用手机拍照来记录一些重要的事情和资料?

拍完照之后回过头却早已忘记当初拍摄的原因和照片的意义,只恨当初没法在照片上写上一笔!

各种凌乱的照片无法归类整理?想起一张照片却又怎么都找不到?

拍摄的照片不是美美的?拍摄的照片不清晰?

换了手机照片和笔记都没法导过来?

PhotosNoter - 就是这样一款:

~能帮你快速整理和分类你的照片

~能在第一时间将照片分类,永远不会忘记拍下它的理由

~通过不同的角度来玩转你的照片

~照片不是美美的话可以滤镜一下下

~在图片上写写画画

~第三方登录,云备份

~想把重要的照片和笔记分享给朋友

大概功能

App实际上可以说是一个相册,只是在相册的基础上加上了笔记这块功能。

  • 相册功能(ImageLoader加载图片)
  • 分类功能
  • 拍照功能(系统和自己写的)
  • 本地上传图片(系统的,后期打算自己写)
  • 文字编辑
  • 滤镜(Camera360 EDIT SDK)
  • 文字编辑

App中我认为的干货

  1. 相机的状态机(状态机不对很容易崩哦~还要参数部分)。
  2. 照片分为两种,一个是大图,一个是小图,小图是相册界面缩略图的时候加载的,大图是可以照片详情页面的时候加载的。
  3. 每个笔记的数据库ID都是某个分类的外键。
  4. 图片处理,这是一个老生常谈的了。但是在App中,发现很多这方面的问题我还没有解决。比如红米1s后置摄像头800W,那么拍一张图是3M左右,但是Camera的照片的0度是我们正常手机视角的90度。那么我们需要把这个3M的图片给翻转过来,又不想失分辨率,诶,java臣妾做不到啊!那么现在的解决办法是不去拍摄800W像素的,拍大概400-500W像素的不会OOM的。
  5. 沙盒。每次拍完照都是先把数据放到沙盒数据库中,然后再到服务中去作图,做完的话再从数据库中删除掉。作图的Service是和Camera那个Activity绑定的(bind方式),当不再拍照的时候就退出了Service,然后回到相册界面的时候会去判断沙盒数据库中是否有没有做完的图,没有做完的话另外启一个进程的Service继续作图。
  6. 图片处理完之后(比如在Service中做完了图之后)通知更新界面,用的是广播。
  7. 高斯模糊(网上找的),如果图大的话会非常慢。
  8. activity退出和进入的动画。这块弄了很久,主要是想模仿Android5.0的那种,但是有些界面做出来超级卡,卡到爆。
  9. 主题设置,沉浸式状态栏(5.0)。
  10. (后续添加GridView的动画)。
  11. (文字编辑中的Emoji和语音输入)。
  12. (等等等等。。。。。。)

大概想到的只有那么多,在写App的过程中学习到了许多,去看了许多开源的东西,真的学到了好多。所以我也想要开源!

我也要开源

因为整个App技术含量不高,有很多控件都是开源的直接拿来用的,但是在App中我也做了许多控件,打算把他们开源出来。

SlideAndDragListView

https://github.com/yydcdut/SlideAndDragListView

欢迎Star!

这个已经放到github上了,但是我还没有整理好,现在抽离出来功能都已经实现了,bug也被我改掉了不少,目前我这边简单测试的话基本上没有什么bug了。接下来我要做的是把控件抽成一个Module。

好消息:我注释写的很详细。

不要问我为什么那么详细,我不会告诉你青轴键盘码起来根本停不下来。

主要功能

  1. item可以侧滑,侧滑之后显示出来的两个button可点击。
  2. item可以拖放移动。

大概实现

  1. ListView中的setOnItemClick()和setOnItemLongClick()都被我覆盖掉了,因为和手势冲突,所以我就自己另外在onTouch中自己定义了LongClick事件。
  2. 侧滑是Scroller实现的。
  3. 拖放是通过OnDragListener实现的。

Camera&Camera2 MVC

这部分的Camera2部分都还没有写,只写了Camera部分。

https://github.com/yydcdut/Camera-Camera2-MVC

当上面那个弄完之后我就开始弄这个辣。到时候另启一篇文章吧,因为Camera2真的很棒。(N5,N6上基本上支持所以参数,但是像魅族,小米那些5.0的Rom大部分都不支持,还是Legacy-Level的)。

目录结构:

我是天王盖地虎的分割线

我不敢直接开源App,因为我觉得App写的并不是那么的好,而且还要不断的更新版本。但是后面还是回考虑开源出来的。

https://github.com/yydcdut/SlideAndDragListView
https://github.com/yydcdut/Camera-Camera2-MVC

谢谢大家,散花~欢迎到github上star哟~

.pro_name a{color: #4183c4;}.osc_git_title{background-color: #d8e5f1;}.osc_git_box{background-color: #fafafa;}.osc_git_box{border-color: #ddd;}.osc_git_info{color: #666;}.osc_git_main a{color: #4183c4;}

发布了Android的App,我要开源几个组件!的更多相关文章

  1. 开源整理:Android App新手指引开源控件

    开源整理:Android App新手指引开源控件 一个App第一次与用户接触或者发生大版本更新时,常常会用户进行新手引导,而一个好的新手指引,往往能够方便新用户快速了解操作你的应用功能.新手指引的重要 ...

  2. 转载: 开源整理:Android App新手指引开源控件

    http://blog.coderclock.com/2017/05/22/android/open-source-android-app-guide-view-library/ 开源整理:Andro ...

  3. uni-app开发经验分享十六:发布android版App的详细过程

    开发环境 1. Android Studio下载地址:Android Studio官网 OR Android Studio中文社区 2. HBuilderX(开发工具) 3. App离线SDK下载:最 ...

  4. IT观察】网络通信、图片显示、数据库操作……Android程序员如何利用开源框架

    每个Android 程序员都不是Android应用开发之路上孤军奋战的一个人,GitHub上浩如烟海的开源框架或类库就是前人为我们发明的轮子,有的轮子能提高软件性能,而有的轮子似乎是以牺牲性能为代价换 ...

  5. 如何在Android Studio项目中导入开源库?

    前两天,谷歌发布了Android Studio 1.0的正式版,也有更多的人开始迁移到Android Studio进行开发.然而,网上很多的开源库,控件等还是以前的基于Eclipse进行开发,很多人不 ...

  6. 【Flutter学习一】Android的App的三种开发方式

    是时候学习新技术了: 转自:https://blog.csdn.net/qq_41346910/article/details/86692124 移动开发发展到现在,已经出现了三种开发方式.本文我将为 ...

  7. Cordova 打包 Android release app 过程详解

    Cordova 打包 Android release app 过程详解 时间 -- :: SegmentFault 原文 https://segmentfault.com/a/119000000517 ...

  8. Android酷炫实用的开源框架(UI框架)

    Android酷炫实用的开源框架(UI框架) 前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮 ...

  9. Android酷炫实用的开源框架——UI框架(转)

    转载别人整理好的文章,列出了很多炫酷的UI开源设计 原文地址:http://www.androidchina.net/1992.html 1.Side-Menu.Android分类侧滑菜单,Yalan ...

随机推荐

  1. 《Google想出了一个决定人员晋升的算法,然后就没有然后了......》有感

    Prasad Setty 是 Google People Analytics 团队的副总裁.7 年前 Google 成立的这支团队的职责是收集和利用数据来支撑公司的管理实践.其使命很简单,即基于数据和 ...

  2. LoadRunner性能测试巧匠训练营

    <LoadRunner性能测试巧匠训练营>基本信息作者: 赵强 邹伟伟 任健勇 丛书名: 实战出版社:机械工业出版社ISBN:9787111487005上架时间:2015-1-7出版日期: ...

  3. linux基础-第十单元 系统的初始化和服务

    第十单元 系统的初始化和服务 Linux系统引导的顺序 Linux系统引导的顺序 BOIS的初始化和引导加载程序 什么是BIOS GRUB程序和grub.conf文件 什么是grub grub配置文件 ...

  4. 初学git,出现错误:fatal: Not a git repository (or any of the parent directories): .git

    提示说没有.git这样一个目录,解决办法: 输入  git init 就可以啦.

  5. android Unhandled exception type ParseException提示报错

    Unhandled exception type ParseException 意思指:你有一个方法会抛出异常,但是你没有捕捉. 依提示添加一下即可解决:

  6. hdu 4966 GGS-DDU (最小树形图)

    比较好的讲解:http://blog.csdn.net/wsniyufang/article/details/6747392 view code//首先为除根之外的每个点选定一条入边,这条入边一定要是 ...

  7. Mac brew命令

    一.简介 Brew又叫Homebrew,是MAC中的一款软件包管理工具,通过brew可以很方便的在MAC中安装软件或者是卸载软件. 二.安装 ruby -e "$(curl -fsSL ht ...

  8. NOIP2000乘积最大[序列DP]

    题目描述 今年是国际数学联盟确定的“2000――世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年.在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得 ...

  9. URL和URI区别

         URI:Universal Resource Identifier,通用资源标识符:   URL:Uniform Resource Locator,统一资源定位符:   其中,URL是URI ...

  10. compass电子罗盘

    GPS       这个用过GPS的机油肯定不陌生.          还是 介绍一下i8000的电子罗盘.传统罗盘用一根被磁化的磁针来感应地球磁场,地球磁场与磁针之间的磁力时磁针转动,直至磁针的两端 ...