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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

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

github:

先上圖:

很多情況下,我們都會(huì)遇到需要類(lèi)似于時(shí)間軸的一個(gè)布局,網(wǎng)上也有很多,但是很多情況下我們其實(shí)并不需要那么多庫(kù),畢竟64k限制就在那,不管我們用還是不用,它依然在那。。。

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

事實(shí)上這次的教程也是因?yàn)槲宜拘枰粋€(gè)轉(zhuǎn)賬流程,這個(gè)轉(zhuǎn)賬流程包含了基本的三個(gè)狀態(tài):

1 - 轉(zhuǎn)賬開(kāi)始

2 - 轉(zhuǎn)賬中

3 - 轉(zhuǎn)賬成功

而失敗后重新轉(zhuǎn)賬可以看到前面的狀態(tài),也就是前面的三個(gè)狀態(tài)的重復(fù)

一般而言,轉(zhuǎn)賬3~4次失敗我們也就算了,同時(shí)因?yàn)椴季直容^簡(jiǎn)單,所以我這次就沒(méi)打算用listview,而是簡(jiǎn)單的繼承LinearLayout

當(dāng)然,如果數(shù)據(jù)比較多,為了內(nèi)存建議還是用listview好

那么下面正文開(kāi)始:

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

線(xiàn)(顏色,寬),點(diǎn)(大小,顏色),圖標(biāo)

為了方便調(diào)整,我們還需要引入兩個(gè)值

點(diǎn)距離父控件左邊的偏移值(調(diào)整左右間距),每個(gè)節(jié)點(diǎn)距離childView的偏移值(調(diào)整上下間距)

于是我們的attrs.xml就出來(lái)了

然后繼承LinearLayout,開(kāi)始我們的簡(jiǎn)易時(shí)間軸

構(gòu)造器我們獲取各種參數(shù),至于變量就不解釋了

我們的主要方法都在onDraw里面,onDraw我們執(zhí)行一個(gè)方法

而我們的drawTimeLine的方法如下:

按照我的設(shè)想,是想著橫著也做一個(gè)的,但由于時(shí)間原因,就暫時(shí)未能實(shí)現(xiàn),但其實(shí)實(shí)現(xiàn)原理都是一樣的。

接下來(lái)就是最主要的幾個(gè)方法了:

這里說(shuō)說(shuō)思路:

首先我們?cè)趏ndraw里面獲取子控件的數(shù)量,然后通過(guò)子控件的屬性定位我們的時(shí)間軸

第一步我們先確定第一個(gè)子控件的位置,這里因?yàn)榇怪钡臅r(shí)間軸,所以我們通過(guò)top+paddingTop來(lái)確定我們的結(jié)點(diǎn)Y位置,同時(shí)引用我們xml定義好的dynamic值來(lái)微調(diào)。同時(shí)記錄下此時(shí)第一個(gè)結(jié)點(diǎn)的x,y

第二步我們確定最后一個(gè)控件的位置,方法同第一步,也記錄下此時(shí)最后一個(gè)節(jié)點(diǎn)的x,y。同時(shí)調(diào)用drawBitmap畫(huà)出我們的icon

第三步我們就畫(huà)第一個(gè)和最后一個(gè)之間的子控件的線(xiàn)和結(jié)點(diǎn)。相關(guān)注釋都在代碼中標(biāo)注好了,所以這里就不再詳細(xì)闡述了

這個(gè)工程還沒(méi)完成,以后如果有時(shí)間我希望能把水平方向的也弄出來(lái)。當(dāng)然,如果諸位有更nice的修正歡迎PullRequest.

這是一個(gè)簡(jiǎn)單的時(shí)間軸定制,希望能夠幫到你-V-(詳細(xì)代碼請(qǐng)看github)

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。