一期项目计划

记账软件最准确的使用方式,是在花费后立即记账,所以应用需要考虑单手操作下可以快捷地开始记账操作,比如在右下角放置 floating button 来实现,并在其上增加类似小米悬浮球或印象笔记的效果,使得在记账时可以快捷选择记账类别,提高记账便利性;

应用需要有一个管理界面,用来编辑记录的类别和类别对应的颜色;

二期项目计划

增加微信第三方快捷登陆入口;

实现账目、设置、配色、用户信息云端同步;

在记账页面增加简易计算器,便捷用户操作;

使用自定义组件美化应用界面,并增加动画;

新订单的类型可以自定义设置,储备常见图标;

增加可拖拽更改顺序的类别界面;

增加词库,自动将公交、打的、出租、高铁等词汇汇集为交通类,在图表中展示。

配色方案

一阶主题色:#336799

二阶主题色:#489ed8(基本色)

三阶主题色:#34c5f3

四阶主题色:#9ddbf0

开发日志及进度

7月27日

由于现有 Andoid 平台上的记账软件,要么动画不够流畅,要么太过繁琐,或者不太美观,所以有了自己做记账应用的想法。

7月28日

梳理需求与计划,准备开始开发。

7月29日

开始实现底部导航栏部分。

google 官方的 bottom navigation 设计规范文档:

https://material.google.com/c...

基于此找到在 github 上的项目 BottomBar,完全符合 material design 的设计标准。

https://github.com/roughike/B...

类似印象笔记的 floating action button 实现方式基于 github 的 android floating action button 项目。该项目已经被 awesome android UI 收录。

https://github.com/futuresimp...

google material design icon samples:

https://design.google.com/icons/

app launcher icon:

原始素材来自淘图网,此 icon 经过适当编辑。

实现了底栏样式,暂定如下:

7月30日

修改了底栏样式,使其有底色、增加了一个类别按钮。

现在四个按钮分别为:账目、图表、类别、我的。

首先需要了解 floating action button 的使用方式,阅读 github 项目 sample 中的源码是非常有效的方式,很清楚。

在 runtime 中动态添加了三个按钮,分别为餐饮、交通和其他,并完成了选色,配色方案如下:

#40c4ff

#FFAB40

#00E676

#4CAF50

#FF9800

#9E9E9E

#CDDC39

#7E57C2

#673AB7

效果图:

四个按钮分别为:账目、图表、类别、我的。

修改了账目和图表的 icon,使得四个 icons 都是没有规则外框线的,更统一。

在实现的过程中遇到一个问题,icons 需要不同颜色怎么办。

一方面后期用户将可以自定义颜色,另一方面在 res 中放置大量的 icons 非常浪费空间。

那么这时候就需要用到 tint,但是 tint 只能在 API > 21 时才能使用,所以作罢。

tint 具体的使用方法请 google 或百度了解。

为了兼容性,我们需要使用相对更复杂但兼容性更好、功能更强大的 ColorFilter 来实现。

ColorFilter 的具体使用方法可以 google 或百度了解,在这个需求下使用 ColorFilter 的子类 PorterDuffColorFilter 结合其 PorterDuff.Mode.SRC_ATOP 模式就可以轻松实现,并得到修改后的 drawable 对象。

其中 PorterDuffColorFilter 类似 Photoshop 中的混合模式。

实现了在 runtime 中增加按钮以及用 ColorFilter上色的代码如下:

Drawable drawable;

ColorFilter colorFilter; // 使用 ColorFilter 类完成 tint

floatingActionButton = new FloatingActionButton(getActivity()); // 新建一个 fab

floatingActionButton.setColorNormalResId(R.color.white); // 设置常规色

floatingActionButton.setColorPressedResId(R.color.white_pressed); // 设置按下时颜色

floatingActionButton.setTitle(getActivity().getString(R.string.others)); // 设置标题

drawable = ContextCompat.getDrawable( // 为保证兼容性使用 ContextCompat

getActivity(), R.drawable.ic_loyalty_black_24dp); // 使用 getActivity() 获取context

// 使用 PorterDuffColorFilter 的 SRC_ATOP 模式实现 tint 效果

colorFilter = new PorterDuffColorFilter(ContextCompat.getColor(getActivity(),

R.color.deep_purple_400), PorterDuff.Mode.SRC_ATOP);

drawable.setColorFilter(colorFilter); // drawable 应用 ColorFilter

floatingActionButton.setIconDrawable(drawable);

floatingActionsMenu.addButton(floatingActionButton);

8月1日

根据 google 官方的 Orthographic view of app structure 来进行 UI 微调:

并把 App 更名为水滴记账,符合 icon 特征。

8月10日

各种 Material 颜色系统内本身就有内置

用 RecyclerView 来实现展示类别页面

使用 RealmRecyclerViewAdapter 来实现 Adapter

编写自定义圆形 ImageView 控件

自定义圆形 ImageView 见新写的博文:

android记账本的技术路线,Android — 个人简洁记账本项目开发日志相关推荐

  1. 基于android的条码识别技术,基于Android手机的条码识别系统研究

    摘要: 当前,条码技术在商品管理.生产自动化.邮政系统.交通运输等领域得到了广泛的应用.与此同时,随着网络信息技术的发展,尤其是近几年以智能手机为代表的智能终端设备的兴起,移动互联网获得了蓬勃发展,为 ...

  2. 基于android的理财软件技术,基于Android的个人理财系统的设计与实现

    摘要: 在当今,全球经济的蓬勃发展带来了金融理财领域的巨大变革和创新,新的金融理财工具和理财观点层出不穷.对个人而言,从认识钱到管理钱(个人理财)是每个人的必修课.在Android系统应用如此火热的情 ...

  3. android声纹识别技术,基于Android平台的声纹识别系统的研究与实现

    摘要: 社会的发展越来越快,计算机技术的应用也愈来愈广,已经渗透到生活的各个方面.在快节奏.信息化的时代,需要识别和交互的应用日益广泛,要求验证身份的场合越来越多,迅速判定一个人的身份是一个非常重要的 ...

  4. Android驾驶证拍照识别技术

    Android驾驶证拍照识别SDK 一.Android驾驶证拍照识别技术应用背景 这些年,随着互联网金融的极速发展,第三方支付.理财.P2P网贷.征信等APP应用成爆发式的增长,在众多APP中都涉及到 ...

  5. 直播软件搭建Android音视频方向进阶路线及资源合集

    直播软件搭建Android音视频方向进阶路线及资源合集 直播软件搭建的音视频从采集到播放都经历了哪些流程呢:: 通过上面的图,我们简单的把音视频方向分为主要的两块: 媒体部分(蓝色+绿色) 传输部分( ...

  6. Android APK加壳技术方案----代码实现

    本文章由Jack_Jia编写,转载请注明出处. 文章链接:http://blog.csdn.net/jiazhijun/article/details/8746917 作者:Jack_Jia    邮 ...

  7. Android Java虚拟机拦截技术分析

    2019独角兽企业重金招聘Python工程师标准>>> 最近反编译金山毒霸,分析其广告拦截功能是如何实现的.根据金山毒霸的介绍,采用了java虚拟机拦截技术,带着好奇去研究了一下.在 ...

  8. Android动态加载技术

    基本信息 Author:kaedea GitHub:android-dynamical-loading 我们很早开始就在Android项目中采用了动态加载技术,主要目的是为了达到让用户不用重新安装AP ...

  9. 白皮书 | 国内首份《Android 全埋点技术白皮书》开源所有项目源码!

    随着大数据行业的快速发展,越来越多的人们意识到--数据基础夯实与否,取决于数据的采集方式. 目前,国内大数据埋点方式多样,按照埋点位置不同,可以分为前端(客户端)埋点与后端(服务器端)埋点.其中全埋点 ...

  10. 重磅!《Android 全埋点技术白皮书》开源所有项目源码!

    随着大数据行业的快速发展,越来越多的人们意识到--数据基础夯实与否,取决于数据的采集方式. 目前,国内大数据埋点方式多样,按照埋点位置不同,可以分为前端(客户端)埋点与后端(服务器端)埋点.其中全埋点 ...

最新文章

  1. Exchange 2007更改用户收发邮件大小限制
  2. java date 格式化_Date类日期格式化
  3. ssm项目整合log4j日志
  4. 你不能错过这些美食!
  5. VTK:Disk用法实战
  6. Oracle相关报错
  7. MySQL入门 (七) : 储存引擎与资料型态
  8. B/S开发框架Web安全问题及防范规范之挂马和WebShell
  9. Python自动化测试-正则表达式解析
  10. ADSL、SRA、HDSL
  11. Python中的公共操作(运算符,公共方法,容器类型转换)
  12. Windows上Dos命令操作文件及文件夹
  13. Java个人财务管理小软件
  14. JavaScript实现随机抽奖功能
  15. 谷歌金山词霸正式发布
  16. 华为2019年4月10日实习生笔试题
  17. 武田宣布美国FDA授予ALUNBRIG® (brigatinib)作为ALK+转移性非小细胞肺癌一线治疗的补充新药申请优先审理
  18. mp3处理工具(mp3agic)
  19. nginx的 ngx.var ngx.ctx ngx.req
  20. steam好友服务器当前处于离线状态,steam怎么修改在线状态-steam设置离线、想交易、隐身等状态的方法 - 河东软件园...

热门文章

  1. Ubuntu中文件颜色的含义
  2. 数据库索引的分类,类型,索引的优缺点,索引的优化
  3. harmonyos下载安装,HarmonyOS系统
  4. 测判三极管的口诀 (挑战者)
  5. 天地三才阵——【Java三大特征】
  6. 计算机考试190,计算机考试题库:计算机考试模拟练习题(190)
  7. 2012蓝桥杯省赛真题 鲁卡斯序列
  8. 转载:稀疏矩阵存储格式总结+存储效率对比:COO,CSR,DIA,ELL,HYB
  9. 科学计算机统计说明书,科学计算器的使用方法
  10. 计算机网络安全开题报告怎么写,网络安全开题报告范文精选