发布了Android的App,我要开源几个组件!

简介:

做了一款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




本文转自我爱物联网博客园博客,原文链接:http://www.cnblogs.com/yydcdut/p/4732278.html如需转载请自行联系原作者

相关文章
|
2月前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
3月前
|
存储 Android开发 开发者
深入理解安卓应用开发的核心组件
【10月更文挑战第8天】探索Android应用开发的精髓,本文带你了解安卓核心组件的奥秘,包括Activity、Service、BroadcastReceiver和ContentProvider。我们将通过代码示例,揭示这些组件如何协同工作,构建出功能强大且响应迅速的应用程序。无论你是初学者还是资深开发者,这篇文章都将为你提供新的视角和深度知识。
|
3月前
|
数据可视化 Android开发 开发者
安卓应用开发中的自定义View组件
【10月更文挑战第5天】在安卓应用开发中,自定义View组件是提升用户交互体验的利器。本篇将深入探讨如何从零开始创建自定义View,包括设计理念、实现步骤以及性能优化技巧,帮助开发者打造流畅且富有创意的用户界面。
110 0
|
5天前
|
存储 监控 API
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
|
30天前
|
XML 搜索推荐 前端开发
安卓开发中的自定义视图:打造个性化UI组件
在安卓应用开发中,自定义视图是一种强大的工具,它允许开发者创造独一无二的用户界面元素,从而提升应用的外观和用户体验。本文将通过一个简单的自定义视图示例,引导你了解如何在安卓项目中实现自定义组件,并探讨其背后的技术原理。我们将从基础的View类讲起,逐步深入到绘图、事件处理以及性能优化等方面。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。
|
3月前
|
缓存 小程序 索引
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
267 1
|
3月前
|
存储 API 数据库
uniapp APP自动更新组件
uniapp APP自动更新组件
109 1
|
3月前
|
XML 前端开发 Java
安卓应用开发中的自定义View组件
【10月更文挑战第5天】自定义View是安卓应用开发的一块基石,它为开发者提供了无限的可能。通过掌握其原理和实现方法,可以创造出既美观又实用的用户界面。本文将引导你了解自定义View的创建过程,包括绘制技巧、事件处理以及性能优化等关键步骤。
|
3月前
|
存储 前端开发 UED
uni-app:基础组件 (下)
本文介绍了多种前端组件及其用法,包括:label 组件用于表单元素的标签;picker 组件用于实现日期、时间及普通列表的选择器;textarea 组件用于输入多行文本,并可通过 v-model 双向绑定数据;process 组件用于显示进度条;swiper 组件用于轮播图展示;match-media 组件根据屏幕尺寸展示内容;audio 组件用于播放音频;switch 组件用于开关选择;scroll-view 组件实现滚动视图功能;以及 storage 的使用方法,如设置、获取和移除本地存储等。
|
3月前
|
存储 前端开发 JavaScript
uni-app:基础组件 (上)
本文介绍了uni-app中多个组件的使用方法,包括存储操作、图标展示、按钮样式、表单输入、导航跳转和输入框控制等。通过具体代码示例展示了如何设置存储键值、使用不同类型的按钮、实现表单提交与重置功能、控制输入框的显示与清除等功能。