多功能轉盤選單:ETurntableMenuView

mochixuan發表於2017-10-10

寫個部落格也不知道怎麼開頭,寫了四五篇了感覺寫了好多,看了下字數統計我去,才1000多字我怎麼感覺寫了上萬字呢,好吧,還有幾千在腦子裡沒寫出來。開始下文。

1. 需求

之前公司有個需求需要實現一個橢圓形大布局,實現旋轉和停止時固定角度,佈局的每個Item需要有個大小差,帶點點視覺效果,如圖。
這個比較適用於車間,TV,橫屏佈局的機器上,其他佈局的調下引數也是一樣的。

img1.png
img1.png

2.怎麼搞?

百度一下,看看有沒有現成的,每次看到自定義View都怕,這方面確實有的不多,普通的網上應該也有,而且該經過驗證的。但找了一下真沒有找到這種橢圓的,沒辦法,沒思路,還好經過艱難的,不屑的..... 百度到了兩個相關的ArcPageIndicatorAndroid-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時

img2.jpg
img2.jpg


六個Item時

img3.jpg
img3.jpg


八個Item時

img4.jpg
img4.jpg


Gif效果

img5.gif
img5.gif

這個是之前寫的,所以demo就不寫那麼多,覺得用的到可以自己再看。

7. 感謝思路來源 ArcPageIndicator和 Android-CircleMenu。

8. 原始碼地址

相關文章