寫個博客也不知道怎么開頭赵誓,寫了四五篇了感覺寫了好多,看了下字?jǐn)?shù)統(tǒng)計我去司恳,才1000多字我怎么感覺寫了上萬字呢途乃,好吧,還有幾千在腦子里沒寫出來扔傅。開始下文耍共。
1. 需求
之前公司有個需求需要實現(xiàn)一個橢圓形大布局,實現(xiàn)旋轉(zhuǎn)和停止時固定角度猎塞,布局的每個Item需要有個大小差试读,帶點點視覺效果,如圖荠耽。
這個比較適用于車間钩骇,TV,橫屏布局的機(jī)器上铝量,其他布局的調(diào)下參數(shù)也是一樣的倘屹。
img1.png
2.怎么搞?
百度一下,看看有沒有現(xiàn)成的慢叨,每次看到自定義View都怕纽匙,這方面確實有的不多,普通的網(wǎng)上應(yīng)該也有插爹,而且該經(jīng)過驗證的哄辣。但找了一下真沒有找到這種橢圓的请梢,沒辦法,沒思路力穗,還好經(jīng)過艱難的毅弧,不屑的..... 百度到了兩個相關(guān)的ArcPageIndicator 和 Android-CircleMenu 經(jīng)過看看,看看当窗,看看够坐,有點識路了本控件主要是對Android-CircleMenu進(jìn)行修改得出。
3.實現(xiàn)
- 我個人不太想在博客里貼源碼什么的崖面,想看的可以看源碼元咙,一般都是介紹怎么用,因為類也不多比較簡單巫员。
- 需要修改樣式可以直接修改下面四個參數(shù)庶香。
//盡量保證最大值為1,在布局里將圖片文字設(shè)置大點简识,放大會失真
private float mMaxSize = 1.0f;
private float mMinSize = 0.6f;
//拉伸成橢圓
private float mStretchX = 1.6f;
private float mStretchY = 0.6f;
- attrs 介紹
//下面兩個可以實現(xiàn)Item視覺差赶掖,就是最近的圖片大點,最小的圖片小的
<attr name="children_max_scale" format="float"/>
<attr name="children_min_scale" format="float"/>
- eturntable_menu_item.xml
修改這個可以修改七扰,可以對每個樣式進(jìn)行修改奢赂,例如圖片和文字的位置但不能改id名。
4.功能
- 1.可以定義控件的個數(shù)颈走。
- 2.可以監(jiān)聽每個Item的單機(jī)事件膳灶。
- 3.可以實現(xiàn)各種形狀的盤子,如圓盤立由,橢圓盤轧钓。
- 4.可以實現(xiàn)代碼切換上一個,下一個的旋轉(zhuǎn)锐膜。
- 5.實現(xiàn)滑動時松開選擇到固定角度聋迎。
- 6.字?jǐn)?shù)差不多了,不扯了,自己看枣耀,-.-。
5.使用
//Maven
<dependency>
<groupId>com.wangxuan.library</groupId>
<artifactId>eturntablemenuview</artifactId>
<version>1.0</version>
<type>pom</type>
</dependency>
//Gradle
compile 'com.wangxuan.library:eturntablemenuview:1.0'
6.效果圖
第一張圖是實現(xiàn)了庭再,但樣式圖片公司的不能公開捞奕,所以下了八個動物代替,不怎么好看拄轻,看功能就行颅围。
七個Item時
img2.jpg
六個Item時
img3.jpg
八個Item時
img4.jpg
Gif效果
img5.gif
這個是之前寫的,所以demo就不寫那么多恨搓,覺得用的到可以自己再看院促。