• Stars
    star
    121
  • Rank 293,924 (Top 6 %)
  • Language
    Java
  • Created almost 7 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

时间刻度尺

TimeRuler License Download

时间轴、时间刻度尺

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

效果图

时间选择

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

使用

导入

app.build中使用

    compile 'com.jwkj:TimeLineView:v2.1.5'

混淆配置

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

开启硬件加速

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

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

布局

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

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

设置当前时间

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() {
             ...
            @Override
            public void onBarMoving(long currentTime) {
                currentTimeMillis = currentTime;
            }
          ...
        });

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

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

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

版本记录

2.X版本

v2.1.5( 2018.03.22 )

  • 【修复】最小刻度选择时间时时间不对应问题

v2.1.4( 2018.03.22 )

  • 【修复】部分机型横竖屏切换提示图片不对问题

v2.1.3( 2018.03.21 )

  • 【新增】设置横竖屏的方法

v2.1.2( 2018.03.14 )

  • 【优化】天数切换时,不再回调onBarMoveFinished();

v2.1.1( 2018.03.09 )

  • 【修复】画有间断的视频区域可能时间不对应问题

v2.1.0( 2018.03.05 )

  • 【优化】重写底层代码,改为recycleview实现,滑动更加顺畅,时间更加准确,缩放更加流畅

推荐使用最新版本

1.x版本

v1.3.9( 2018.01.11 )

  • 【修复】onMoveExceedEndTime()回调两次问题

v1.3.8( 2018.01.11 )

  • 【优化】拖动的灵敏度

v1.3.7( 2018.01.10 )

  • 【修复】提示页面箭头与图片不一致问题

v1.3.6( 2018.01.10 )

  • 【新增】新增视频开始和结束,再继续拖动时的提示(横屏)

v1.3.5( 2018.01.09 )

  • 【新增】新增视频开始和结束,再继续拖动时的提示(竖屏)

v1.3.3( 2017.11.09 )

  • 【新增】缩放到最大和最小时的回调方法

v1.3.2( 2017.10.26 )

  • 【修复】部分手机时间文本被挡住一小部分

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分钟拉取时时间倒跑问题

更早版本未记录

More Repositories

1

M3U8Manger

M3U8管理器,M3U8格式视频下载,支持点播下载,直播缓存
Java
565
star
2

HRichEditor

Android端富文本编辑器HEichEditor
Java
323
star
3

MRichEditorDemo

The MRichEditor is a richeditor for Android
Java
99
star
4

livetemplates

Android Studio Live Templates使用详解,提高敲代码的速度
97
star
5

newkjdemo

mvp+retrofit+rxjava
Java
63
star
6

RootUtils

Firefly-RK系列(eg:RK3288 RK3368)一键获取root权限工具RootUtils
Java
45
star
7

LogcatView

Logcat手机版日志记录
Java
44
star
8

Android_ProtoBuf_Demo

Android中protobuf的使用教程,结合HttpURLConnection及Retrofit+RxJava使用
Java
42
star
9

MyHttpUtils

一个非常好用的异步网络请求框架
Java
40
star
10

UDPSender

UDPSender 一个基于NIO的UDP发送-接收器
Java
35
star
11

DatepickerDialog

日期选择器,日历选择器,可标记某一天,DatepickerDialog,Tagged calendar
Java
28
star
12

TimeRuler

时间轴、时间刻度尺
Java
27
star
13

CommWebView

android端通用WebView
Java
27
star
14

WebViewDialog

WebViewDialog默认背景透明的加载网页的对话框, 红包、活动弹窗
Java
20
star
15

ELog

ELog----日志打印工具,带定位功能
Java
17
star
16

jpushdemo

jpushdemo
Java
15
star
17

CrashExcptioner

全局异常捕获器,带默认app错误信息页
Java
15
star
18

BuglyAutoInstaller

使用Bugly实现自动安装/静默安装App autoinstaller
Java
11
star
19

MVPOptimize

MVP优化Demo
Java
11
star
20

VideoPlayer_for_Android

android网络视频播放器,可截图
Java
7
star
21

SoundWaveLib

声波配网库
Java
5
star
22

ALiPayDemo

微信、支付宝支付demo
Java
4
star
23

uniapp-plugin-android

开发uniapp for android原生插件
HTML
4
star
24

HProgressDialog

简单加载进度对话框
Java
3
star
25

FacebookDemo

facebook登录、分享demo
Java
3
star
26

NDKDemo

ndk开发-----android studio打包so动态库demo
Java
3
star
27

Ffmpeg_cmd_android

android端ffmpeg命令行工具
C
3
star
28

HPermission

Android权限管理类
Java
3
star
29

andfixdemo

andfixdemo
Java
2
star
30

TimeLineView

时间轴、时间刻度、带时间轴中选择时间
Java
2
star
31

MenuDemo

自定义菜单
Java
2
star
32

YZXVedioLib

抽取云之讯视频通话部分作为单独的库,便于后期的集成
Java
2
star
33

Spring

Spring学习
Java
2
star
34

linux

linux学习笔记
Java
2
star
35

taxiservice

基于SSM的出租车管理系统
Java
2
star
36

IJKMediaplayerDemo

ijkplayer简单实现播放视频
Java
1
star
37

DeivceUDPLib

设备UDP库
Java
1
star
38

ColorExtraction

颜色吸取器
Java
1
star
39

UDPSenderDemo

基于NIO的广播发送器---搜索局域网设备
Java
1
star