寫個部落格也不知道怎麼開頭,寫了四五篇了感覺寫了好多,看了下字數統計我去,才1000多字我怎麼感覺寫了上萬字呢,好吧,還有幾千在腦子裡沒寫出來。開始下文。
1. 需求
之前公司有個需求需要實現一個橢圓形大布局,實現旋轉和停止時固定角度,佈局的每個Item需要有個大小差,帶點點視覺效果,如圖。
這個比較適用於車間,TV,橫屏佈局的機器上,其他佈局的調下引數也是一樣的。
2.怎麼搞?
百度一下,看看有沒有現成的,每次看到自定義View都怕,這方面確實有的不多,普通的網上應該也有,而且該經過驗證的。但找了一下真沒有找到這種橢圓的,沒辦法,沒思路,還好經過艱難的,不屑的..... 百度到了兩個相關的ArcPageIndicator 和 Android-CircleMenu 經過看看,看看,看看,有點識路了本控制元件主要是對Android-CircleMenu進行修改得出。
3.實現
- 我個人不太想在部落格裡貼原始碼什麼的,想看的可以看原始碼,一般都是介紹怎麼用,因為類也不多比較簡單。
- 需要修改樣式可以直接修改下面四個引數。
``` java
//儘量保證最大值為1,在佈局裡將圖片文字設定大點,放大會失真
private float mMaxSize = 1.0f;
private float mMinSize = 0.6f;
//拉伸成橢圓
private float mStretchX = 1.6f;
private float mStretchY = 0.6f;複製程式碼
>- attrs 介紹
``` java
//下面兩個可以實現Item視覺差,就是最近的圖片大點,最小的圖片小的
<attr name="children_max_scale" format="float"/>
<attr name="children_min_scale" format="float"/>複製程式碼
- eturntable_menu_item.xml
修改這個可以修改,可以對每個樣式進行修改,例如圖片和文字的位置但不能改id名。複製程式碼
4.功能
- 1.可以定義控制元件的個數。
- 2.可以監聽每個Item的單機事件。
- 3.可以實現各種形狀的盤子,如圓盤,橢圓盤。
- 4.可以實現程式碼切換上一個,下一個的旋轉。
- 5.實現滑動時鬆開選擇到固定角度。
- 6.字數差不多了,不扯了,自己看,-.-。
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.效果圖
> 第一張圖是實現了,但樣式圖片公司的不能公開,所以下了八個動物代替,不怎麼好看,看功能就行。
七個Item時
六個Item時
八個Item時
Gif效果
這個是之前寫的,所以demo就不寫那麼多,覺得用的到可以自己再看。