android自定义view,时间刻度尺,时间轴,视频轴
TimeRuler
最新版見github地址(歡迎star):https://github.com/huangdali/TimeRuler
時(shí)間軸、時(shí)間刻度尺
- 繼承至TextureView,效率更高
- 已適配橫豎屏
- 縮放功能(分鐘、小時(shí)級(jí)別)
- 自動(dòng)移動(dòng)(自由決定開啟與關(guān)閉移動(dòng))
- 時(shí)間軸中選擇時(shí)間
- 實(shí)時(shí)設(shè)置當(dāng)天時(shí)間
- 顯示有效視頻時(shí)間
- 超時(shí)(超過00:00:00,、23:59:59)自動(dòng)處理
- 帶拖動(dòng)開始、結(jié)束、自動(dòng)移動(dòng)、超時(shí)回調(diào)
- 帶時(shí)間選擇回調(diào)
- 屬性自由配置
尊重原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處: http://blog.csdn.net/qq137722697
效果圖
新增時(shí)間選擇
通過setSelectTimeArea(bool)就可以設(shè)置是否顯示時(shí)間選擇
使用
導(dǎo)入
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本身不支持直接設(shè)置背景顏色(android:background=”color”,設(shè)置之后會(huì)拋出異常),可以通過屬性viewBackgroundColor來設(shè)置背景色
最簡單的使用(屬性使用默認(rèn)值)
<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".../>設(shè)置當(dāng)前時(shí)間
tRuler.setCurrentTimeMillis(設(shè)置中心線的時(shí)間)初始化視頻時(shí)間段
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);是否自動(dòng)移動(dòng)
tRuler.openMove();//打開移動(dòng)tRuler.closeMove();//關(guān)閉移動(dòng)關(guān)于橫豎屏適配
為什么要適配?
由于橫豎屏切換之后,view寬高不能保持一致導(dǎo)致需要適配
適配步驟
1、定義一個(gè)全局的當(dāng)前時(shí)間毫秒值
private long currentTimeMillis;2、在onBarMoving回調(diào)方法中記錄currentTimeMillis
tRuler.setOnBarMoveListener(new OnBarMoveListener() {...@Overridepublic void onBarMoving(long currentTime) {currentTimeMillis = currentTime;}...});3、在時(shí)間軸所在activity/fragment中重寫onConfigurationChanged方法
@Overridepublic void onConfigurationChanged(Configuration newConfig) {super.onConfigurationChanged(newConfig);...tRuler.setCurrentTimeMillis(currentTimeMillis);...}通過以上三個(gè)步驟即可適配橫豎屏(手動(dòng)與自動(dòng)橫豎屏都可以)
附表
布局文件屬性配置說明
所有屬性都有默認(rèn)值,可以不設(shè)置
- 中軸線顏色–>centerLineColor
- 時(shí)間文字顏色–>rulerTextColor
- 含有錄像背景顏色–>vedioAreaColor
- 刻度線顏色–>rulerLineColor
- 選擇時(shí)間的邊框顏色–>selectTimeBorderColor
- 已選擇時(shí)間顏色–>selectTimeAreaColor
- 中軸線大小–>centerLineSize
- 時(shí)間文字大小–>rulerTextSize
- 小刻度線寬度–>samllRulerLineWidth
- 小刻度線高度–>samllRulerLineHeight
- 大刻度線寬度–>largeRulerLineWidth
- 大刻度線高度–>largeRulerLineHeight
- 選擇時(shí)間邊框大小–>selectTimeBorderSize
- 設(shè)置背景顏色–>viewBackgroundColor
版本記錄
v1.3.1( 2017.09.27 )
- 【優(yōu)化】縮放靈敏度
v1.2.8( 2017.09.12 )
- 【優(yōu)化】需要手動(dòng)適配橫豎屏切換
v1.2.7( 2017.09.08 )
- 【優(yōu)化】連續(xù)拖動(dòng)不回調(diào)onBarMoveFinish(),直到用戶停止拖動(dòng)超過1.5秒才認(rèn)為用戶拖動(dòng)結(jié)束
v1.2.6( 2017.09.07 )
- 【修復(fù)】部分機(jī)型快速橫豎屏切換導(dǎo)致橫豎屏顯示時(shí)間不對(duì)應(yīng)問題
v1.2.5( 2017.09.06 )
- 【優(yōu)化】延遲onBarMoveFinish回調(diào)時(shí)間為2秒
v1.2.4( 2017.09.06 )
- 【新增】設(shè)置背景顏色方法,同樣布局文件中可以app:viewBackgroundColor=”#fff”
v1.2.3( 2017.09.06 )
- 【修復(fù)】未設(shè)置setOnBarMoveListener時(shí)拋出空指針異常
v1.2.2( 2017.09.06 )
- 【優(yōu)化】刪除無用日志
v1.2.1( 2017.09.06 )
- 【新增】 縮放功能(分鐘、小時(shí)級(jí)別)
- 【新增】 布局文件中配置顏色、大小屬性,同樣也提供setXXX()方法
- 【優(yōu)化】 TimeSlot構(gòu)造方法新增第一個(gè)參數(shù)為當(dāng)天開始時(shí)間毫秒值(即當(dāng)天凌晨00:00:00的毫秒值)
v1.1.2( 2017.09.05 )
- 【優(yōu)化】 onBarMoving在主線程中執(zhí)行
v1.0.8( 2017.09.05 )
- 【優(yōu)化】 刪除無用依賴和無用代碼
v1.0.7( 2017.09.05 )
- 【優(yōu)化】 使用openMove()、closeMove()代替setMoving(bool)
v1.0.6( 2017.09.05 )
- 【新增】超過今天開始時(shí)間(00:00:00)、今天結(jié)束時(shí)間(23:59:59)回調(diào),并自動(dòng)回到開始/結(jié)束時(shí)間
v1.0.5( 2017.09.05 )
- 【新增】新增時(shí)間軸上選擇時(shí)間
v1.0.4( 2017.09.04 )
- 【修復(fù)】往小于15分鐘拉取時(shí)時(shí)間倒跑問題
更早版本未記錄
還有更多實(shí)用開源的項(xiàng)目:https://github.com/huangdali
尊重原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處: http://blog.csdn.net/qq137722697
總結(jié)
以上是生活随笔為你收集整理的android自定义view,时间刻度尺,时间轴,视频轴的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器计算机性能测试,服务器平台计算性能
- 下一篇: 安装linpack