TimeRuler

最新版见github地址(欢迎star):https://github.com/huangdali/TimeRuler

时间轴、时间刻度尺

  • 继承至TextureView,效率更高
  • 已适配横竖屏
  • 缩放功能(分钟、小时级别)
  • 自动移动(自由决定开启与关闭移动)
  • 时间轴中选择时间
  • 实时设置当天时间
  • 显示有效视频时间
  • 超时(超过00:00:00,、23:59:59)自动处理
  • 带拖动开始、结束、自动移动、超时回调
  • 带时间选择回调
  • 属性自由配置

尊重原创,转载请注明出处: http://blog.csdn.net/qq137722697

效果图

新增时间选择

通过setSelectTimeArea(bool)就可以设置是否显示时间选择

使用

导入

app.build中使用

    compile 'com.jwkj:TimeLineView:v1.3.1'

混淆配置

#timeruler
-keep class com.hdl.timeruler.**{*;}
-dontwarn com.hdl.timeruler.**

开启硬件加速

所在activity需要开启硬件加速(建议配置横竖屏不重新走一遍生命周期)

java
<activity
...
android:configChanges="orientation|keyboardHidden|screenSize"
android:hardwareAccelerated="true">
...
</activity>

布局

TextureView本身不支持直接设置背景颜色(android:background=”color”,设置之后会抛出异常),可以通过属性viewBackgroundColor来设置背景色

最简单的使用(属性使用默认值)

 <com.hdl.timeruler.TimeRulerViewandroid:id="@+id/tr_line"android:layout_width="match_parent"android:layout_height="166dp" />

配置属性(更多属性说明见本文附录)

    <com.hdl.timeruler.TimeRulerViewandroid:id="@+id/tr_line"android:layout_width="match_parent"android:layout_height="166dp"app:centerLineColor="#ff6e9fff"app:rulerLineColor="#ffb5b5b5"app:rulerTextColor="#ff444242"app:vedioAreaColor="#336e9fff"app:viewBackgroundColor="#fff".../>

设置当前时间

tRuler.setCurrentTimeMillis(设置中心线的时间)

初始化视频时间段

        List<TimeSlot> times = new ArrayList<>();times.add(new TimeSlot(DateUtils.getTodayStart(System.currentTimeMillis()),DateUtils.getTodayStart(System.currentTimeMillis()) + 60 * 60 * 1000, DateUtils.getTodayStart(System.currentTimeMillis()) + 120 * 60 * 1000));times.add(new TimeSlot(DateUtils.getTodayStart(System.currentTimeMillis()),DateUtils.getTodayStart(System.currentTimeMillis()) + 3*60 * 60 * 1000, DateUtils.getTodayStart(System.currentTimeMillis()) + 4*60 * 60 * 1000));tRuler.setVedioTimeSlot(times);

是否自动移动

    tRuler.openMove();//打开移动tRuler.closeMove();//关闭移动

关于横竖屏适配

为什么要适配?

由于横竖屏切换之后,view宽高不能保持一致导致需要适配

适配步骤

1、定义一个全局的当前时间毫秒值

 private long currentTimeMillis;

2、在onBarMoving回调方法中记录currentTimeMillis

tRuler.setOnBarMoveListener(new OnBarMoveListener() {...@Overridepublic void onBarMoving(long currentTime) {currentTimeMillis = currentTime;}...});

3、在时间轴所在activity/fragment中重写onConfigurationChanged方法

  @Overridepublic void onConfigurationChanged(Configuration newConfig) {super.onConfigurationChanged(newConfig);...tRuler.setCurrentTimeMillis(currentTimeMillis);...}

通过以上三个步骤即可适配横竖屏(手动与自动横竖屏都可以)

附表

布局文件属性配置说明

所有属性都有默认值,可以不设置

  • 中轴线颜色–>centerLineColor
  • 时间文字颜色–>rulerTextColor
  • 含有录像背景颜色–>vedioAreaColor
  • 刻度线颜色–>rulerLineColor
  • 选择时间的边框颜色–>selectTimeBorderColor
  • 已选择时间颜色–>selectTimeAreaColor
  • 中轴线大小–>centerLineSize
  • 时间文字大小–>rulerTextSize
  • 小刻度线宽度–>samllRulerLineWidth
  • 小刻度线高度–>samllRulerLineHeight
  • 大刻度线宽度–>largeRulerLineWidth
  • 大刻度线高度–>largeRulerLineHeight
  • 选择时间边框大小–>selectTimeBorderSize
  • 设置背景颜色–>viewBackgroundColor

版本记录

v1.3.1( 2017.09.27 )

  • 【优化】缩放灵敏度

v1.2.8( 2017.09.12 )

  • 【优化】需要手动适配横竖屏切换

v1.2.7( 2017.09.08 )

  • 【优化】连续拖动不回调onBarMoveFinish(),直到用户停止拖动超过1.5秒才认为用户拖动结束

v1.2.6( 2017.09.07 )

  • 【修复】部分机型快速横竖屏切换导致横竖屏显示时间不对应问题

v1.2.5( 2017.09.06 )

  • 【优化】延迟onBarMoveFinish回调时间为2秒

v1.2.4( 2017.09.06 )

  • 【新增】设置背景颜色方法,同样布局文件中可以app:viewBackgroundColor=”#fff”

v1.2.3( 2017.09.06 )

  • 【修复】未设置setOnBarMoveListener时抛出空指针异常

v1.2.2( 2017.09.06 )

  • 【优化】删除无用日志

v1.2.1( 2017.09.06 )

  • 【新增】 缩放功能(分钟、小时级别)
  • 【新增】 布局文件中配置颜色、大小属性,同样也提供setXXX()方法
  • 【优化】 TimeSlot构造方法新增第一个参数为当天开始时间毫秒值(即当天凌晨00:00:00的毫秒值)

v1.1.2( 2017.09.05 )

  • 【优化】 onBarMoving在主线程中执行

v1.0.8( 2017.09.05 )

  • 【优化】 删除无用依赖和无用代码

v1.0.7( 2017.09.05 )

  • 【优化】 使用openMove()、closeMove()代替setMoving(bool)

v1.0.6( 2017.09.05 )

  • 【新增】超过今天开始时间(00:00:00)、今天结束时间(23:59:59)回调,并自动回到开始/结束时间

v1.0.5( 2017.09.05 )

  • 【新增】新增时间轴上选择时间

v1.0.4( 2017.09.04 )

  • 【修复】往小于15分钟拉取时时间倒跑问题

更早版本未记录

还有更多实用开源的项目:https://github.com/huangdali

尊重原创,转载请注明出处: http://blog.csdn.net/qq137722697

android自定义view,时间刻度尺,时间轴,视频轴相关推荐

  1. Android自定义view之仿微信录制视频按钮

    本文章只写了个类似微信的录制视频的按钮,效果图如下:            一.主要的功能: 1.长按显示进度条,单击事件,录制完成回调 2.最大时间和最小时间控制 3.进度条宽度,颜色设置 二.实现 ...

  2. Android 系统(201)---Android 自定义View实战系列 :时间轴

    Android 自定义View实战系列 :时间轴 Android开发中,时间轴的 UI需求非常常见,如下图: 本文将结合 自定义View & RecyclerView的知识,手把手教你实现该常 ...

  3. android自定义起止时间的时间刻度尺,Android 自定义View篇(六)实现时钟表盘效果...

    前言 Android 自定义 View 是高级进阶不可或缺的内容,日常工作中,经常会遇到产品.UI 设计出花里胡哨的界面.当系统自带的控件不能满足开发需求时,就只能自己动手撸一个效果. 本文就带自定义 ...

  4. Android自定义View实现方位刻度尺(类似于吃鸡手游)

    Android自定义View实现方位刻度尺(类似于吃鸡手游) 先上效果图 gif可能看不清,我下面放几张图片 原理解析 首先,我们应该把看得到的内容从上至下分成三部分:最上面的文字.中间的竖线和最下面 ...

  5. Android自定义View进阶-MotionEvent详解

    欢迎Follow我的GitHub, 关注我的CSDN. 其余参考Android目录 我们微信公众号:杨守乐 推荐文章: 如果你喜欢上了一个程序员小伙,献给所有的程序员女友 学习资料(干货汇集)不断更新 ...

  6. android代码实现手机加速功能,Android自定义View实现内存清理加速球效果

    Android自定义View实现内存清理加速球效果 发布时间:2020-09-21 22:21:57 来源:脚本之家 阅读:105 作者:程序员的自我反思 前言 用过猎豹清理大师或者相类似的安全软件, ...

  7. android 自定义view: 跑马灯-光圈

    本系列自定义View全部采用kt **系统: **mac android studio: 4.1.3 **kotlin version:**1.5.0 gradle: gradle-6.5-bin.z ...

  8. Android自定义view之围棋动画

    Android自定义view之围棋动画 好久不见,最近公众号内粉丝要求上新一篇有点难度的自定义view文章,所以它来了!! 干货文,建议收藏 文章目录 Android自定义view之围棋动画 前言 完 ...

  9. Android自定义View之画圆环(进阶篇:圆形进度条)

    前言: 如果你想读懂或者更好的理解本篇文章关于自定义圆环或圆弧的内容.请你务必提前阅读下Android自定义View之画圆环(手把手教你如何一步步画圆环).在这篇文章中,详细描述了最基本的自定义圆环的 ...

  10. android 自定义view 硬件加速,Android自定义View(八) -- 硬件加速

    Android自定义View(八) – 硬件加速 今天学习自定义View部分的最有一篇:硬件加速因为无法录制GIF,所以本篇内容基本为原博 本文计划根据HenCoder系列文章进行学习,所以代码风格及 ...

最新文章

  1. 设计模式之【抽象工厂模式】
  2. WIN10 VMWARE 虚拟机安装WIN10 64系统
  3. 药用计算机题目,医用计算机基础_超星尔雅_题库及答案
  4. matlab tiff 压缩方式,无法打开以这种方式压缩的tiff文件(2) - imageJ / FIJI
  5. Napatech网络加速卡
  6. js中的点击事件(click)的实现方式
  7. 计算机专业学生该如何提高自己?提升自己的专业技能?
  8. Hololens2开发-3-打包编译安装Hololens应用
  9. 苹果降价600元,对本就溃败的国产旗舰手机几乎是毁灭性打击
  10. linux下Hiredis的安装和简单使用
  11. CVPR 2022 | 基于稀疏 Transformer 的单步三维目标识别器
  12. 邯郸 南北两湖规划基本定型
  13. 好的决策是怎么产生的
  14. GitHub小工具制hackbar2.1.3
  15. CMOS电平的频率限制为什么一般在200M以内
  16. 无线网卡AP模式和station模式
  17. 微信关注即可使用 Wi-Fi,取消关注即断网的路由器实现的流程原理以及步骤
  18. 论文笔记-Person Re-Identification Meets Image Search
  19. java中的IO流(字节流和字符流)----读写文件数据
  20. 中国的高级软件工程师你们难道上网只看技术吗?悲哀啊。

热门文章

  1. 最短路径问题---Floyd算法详解
  2. 志愿服务传承,献血共铸大爱
  3. autoware如何启动
  4. 8个快速提高用户忠诚度的套路,运营人必备
  5. QML进阶(八)实现QML界面与C++类型交互
  6. 楼板计算塑形弹性_如何正确进行楼板的塑性计算及其经济性分析
  7. 谷歌浏览器好用的插件-保护眼睛和广告拦截器AdGuard
  8. Nginx总结(2)—Nginx的反向代理
  9. Vector在Java编程中的应用
  10. Maya 提高渲染质量的技巧总结