android自定义view,时间刻度尺,时间轴,视频轴
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,时间刻度尺,时间轴,视频轴的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器计算机性能测试,服务器平台计算性能
- 下一篇: 安装linpack