日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android时间轴左右交叉布局,快速简单的定制一个时间轴布局(LinearLayout)

發布時間:2025/3/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android时间轴左右交叉布局,快速简单的定制一个时间轴布局(LinearLayout) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

github:

先上圖:

很多情況下,我們都會遇到需要類似于時間軸的一個布局,網上也有很多,但是很多情況下我們其實并不需要那么多庫,畢竟64k限制就在那,不管我們用還是不用,它依然在那。。。

而且更多時候,我們的時間軸也許并不需要那么多數據(比如轉賬流程?)

事實上這次的教程也是因為我司需要弄一個轉賬流程,這個轉賬流程包含了基本的三個狀態:

1 - 轉賬開始

2 - 轉賬中

3 - 轉賬成功

而失敗后重新轉賬可以看到前面的狀態,也就是前面的三個狀態的重復

一般而言,轉賬3~4次失敗我們也就算了,同時因為布局比較簡單,所以我這次就沒打算用listview,而是簡單的繼承LinearLayout

當然,如果數據比較多,為了內存建議還是用listview好

那么下面正文開始:

首先規劃一下我們需要的元素,從圖中我們可以看到的元素有:

線(顏色,寬),點(大小,顏色),圖標

為了方便調整,我們還需要引入兩個值

點距離父控件左邊的偏移值(調整左右間距),每個節點距離childView的偏移值(調整上下間距)

于是我們的attrs.xml就出來了

然后繼承LinearLayout,開始我們的簡易時間軸

構造器我們獲取各種參數,至于變量就不解釋了

我們的主要方法都在onDraw里面,onDraw我們執行一個方法

而我們的drawTimeLine的方法如下:

按照我的設想,是想著橫著也做一個的,但由于時間原因,就暫時未能實現,但其實實現原理都是一樣的。

接下來就是最主要的幾個方法了:

這里說說思路:

首先我們在ondraw里面獲取子控件的數量,然后通過子控件的屬性定位我們的時間軸

第一步我們先確定第一個子控件的位置,這里因為垂直的時間軸,所以我們通過top+paddingTop來確定我們的結點Y位置,同時引用我們xml定義好的dynamic值來微調。同時記錄下此時第一個結點的x,y

第二步我們確定最后一個控件的位置,方法同第一步,也記錄下此時最后一個節點的x,y。同時調用drawBitmap畫出我們的icon

第三步我們就畫第一個和最后一個之間的子控件的線和結點。相關注釋都在代碼中標注好了,所以這里就不再詳細闡述了

這個工程還沒完成,以后如果有時間我希望能把水平方向的也弄出來。當然,如果諸位有更nice的修正歡迎PullRequest.

這是一個簡單的時間軸定制,希望能夠幫到你-V-(詳細代碼請看github)

總結

以上是生活随笔為你收集整理的android时间轴左右交叉布局,快速简单的定制一个时间轴布局(LinearLayout)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。