最简单的时间轴实现
来源:互联网 发布:研究方向数据图像处理 编辑:程序博客网 时间:2024/04/20 17:26
时间轴在一些小清新的app还是能带来不错的效果,我这里只是简单的实现了一下。由于代码没有做什么封装,都是还是比较简单已读,适合初学者。
先看看效果图吧。
在使用时需要传入的数据,只需要传入item的时间,然后就可以根据时间,自动判断是今天、昨天、刚刚、5分钟、10分钟等等。item的其他数据,读者可以自由添加。这里主要的代码有对头部添加和时间的判断。
自动头部添加代码如下:
private List<PoliceOfThingBean> sorting(List<PoliceOfThingBean> data) { long mTime = 0; int month = 0; //上一条的月份 int day = 0; //动态添加时间标题样式 for (int i = 0; i < data.size(); i++) { long time = data.get(i).getTime(); mTime = i == 0 ? time : mTime; Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date(time)); //判断是否是同一天 int cuDay = calendar.get(Calendar.DAY_OF_MONTH); int cuMonth = calendar.get(Calendar.MONTH); if (day != cuDay || cuMonth != month) { //如果不是同一天,则添加标题样式 PoliceOfThingBean bean = new PoliceOfThingBean(); bean.setMode(0); bean.setTime(time); data.add(i,bean); } month = cuMonth; day =cuDay; } return data; }
对时间的判断,我这里单独提出到一个工具类中,这样方便应用中其他地方如果有相同的时间显示需求是,可以快速使用。部分代码如下:
public static String getTime(long time) { long diff = System.currentTimeMillis() - time; int judgment = (int) (diff / 60000);//距离现在多少分钟 String result = ""; if (judgment < 5) { result = "刚刚"; } else if (judgment < 10) { result = "5分钟前"; } else if (judgment < 30) { result = "10分钟前"; } else if (judgment < 60) { result = "30分钟前"; } else if (judgment < 100) { result = "1小时前"; } else { //限时具体时间 SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); // 24小时制 result = sdf.format(new Date(time)); } return result; }
public static String getDay(long time) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 24小时制 String old = sdf.format(new Date(time)); String month = old.substring(5, 7); String day = old.substring(8, 10); Date d = new Date(); String str = sdf.format(d); @SuppressWarnings("unused") String nowmonth = str.substring(5, 7); String nowday = str.substring(8, 10); String result = null; int temp = Integer.parseInt(nowday) - Integer.parseInt(day); switch (temp) { case 0: result = "今天"; break; case 1: result = "昨天"; break; case 2: result = "前天"; break; default: result = "以前"; break; } return result; }
有兴趣的读者可以下载源码,下载地址。
阅读全文
0 0
- 最简单的时间轴实现
- 最简单的时间
- 最简单实现获取当前系统时间的方法
- 最简单的时间服务器
- Android自定义简单时间轴的实现
- 时间轴的实现(简单到爆炸)
- 一个简单的时间轴实现
- 显示时间的最简单的JS
- 最简单的时间格式类
- 最简单的时间格式化类
- python最简单的测量时间方法
- 最简单的时间格式类
- 最简单的全日制时间显示
- 获取时间最简单的方式
- Git时间-最简单的命令行
- android:最简单的方式实现自定义选择时间分钟间隔,非滚轮方式
- ajax的最简单实现
- 数据库的最简单实现
- 转存Druid监控记录到日志文件
- curl post base64 jpeg图片精简版
- servlet的初始化过程
- Ubuntu下Android源码的获取(Android4.4为例)
- 关于安卓视频拍摄的小问题
- 最简单的时间轴实现
- android 设置字符串中包含相关文字设置文字颜色
- MPTCP
- 实体类(VO,DO,DTO)的划分
- Meta http-equiv 属性详解
- java中堆栈区别
- chrome调试压缩后的代码
- C++ Stl vector
- FCC--Convert HTML Entities(转化HTML实体)