RulerView - A Ruler View,一個水平尺子滾輪插件
介紹
這是一個水平的尺子滾輪插件
上對齊+顯示效果
上對齊+折半顯示效果
漸顯效果
特性
- 支持定義字體的大小和顏色和是否顯示刻度值
- 支持定義各個刻度的顏色和大小,目前有大,中,小三者,如圖片所示,有最大的是黑色,中等的為綠色,最小的是藍色。同時刻度間隔和刻度的大小可以調節。
- 支持自定義中間的指標器。
- 可以有上和下,兩種對齊的方式。
- 支持指定默認值。
- 支持設置最大和最小值。
- 兩種刻度格式SCALE和HALF,前者為有10格刻度,后者為只有0.5一格小的刻度。參考圖片
- 刻度尺的漸顯效果
- 支持顯示自定義的數據!
使用方法
XML 默認方式
<com.xk.sanjay.rulberview.RulerWheel android:id="@+id/ruler_view" android:layout_width="match_parent" android:layout_height="400dp" app:MaxBarSize="3dp" app:MidBarSize="2dp" app:MinBarSize="1dp" app:scaleWidth="1dp" //不想設置各刻度的大小時,可以用這個設置所有的,不過scaleWidth優先級低于上面的 app:lineColorMax="#797979" app:lineColorMid="#797979" app:lineColorMin="#797979" app:line_divider="10dp" app:dataMode="DATA" app:max_value="100" app:min_value="20" app:def_value="40" app:mode="SCALE" app:alignMode="UP" app:showGradient="true" app:showScaleValue="true" app:text_Size="30" app:text_color="#e21d6f"/>
使用自定義數組
<com.xk.sanjay.rulberview.RulerWheel android:id="@+id/ruler_view2" android:layout_width="match_parent" android:layout_height="400dp" app:MaxBarSize="2dp" app:MidBarSize="1.5dp" app:MinBarSize="1dp" app:alignMode="DOWN" app:dataMode="DATA" app:dataSource="@array/demo_data" app:lineColorMax="#797979" app:lineColorMid="#797979" app:lineColorMin="#797979" app:line_divider="40dp" app:mask_bg="@mipmap/icon_arrow" app:max_value="100" app:min_value="0" app:mode="HALF" app:scaleWidth="1dp" app:showGradient="true" app:showScaleValue="true" app:text_Size="30" app:text_color="#e21d6f"/>
Activity
rulerView = (RulerWheel) findViewById(R.id.ruler_view); rulerView.setScrollingListener(new RulerWheel.OnWheelScrollListener() { @Override public void onChanged(RulerWheel wheel, int oldValue, int newValue) { Log.e(TAG, "curValue=" + newValue); } @Override public void onScrollingStarted(RulerWheel wheel) { } @Override public void onScrollingFinished(RulerWheel wheel) { } });
dataModel---DATA
List<String> list2 = new ArrayList<>(); for (int i = 1000; i < 50000; i += 500) { list2.add(i + ""); } tvCurValue2 = (TextView) findViewById(R.id.curValue2_tv); rulerView2 = (RulerWheel) findViewById(R.id.ruler_view2); //不默認數據的畫可以加下面的方式設置 rulerView2.setData(list2); rulerView2.setScrollingListener(new RulerWheel.OnWheelScrollListener<String>() { @Override public void onChanged(RulerWheel wheel, String oldValue, String newValue) { tvCurValue2.setText(newValue + ""); } @Override public void onScrollingStarted(RulerWheel wheel) { } @Override public void onScrollingFinished(RulerWheel wheel) { } });
鳴謝
特別感謝獨行Zz,這個項目是在他基礎上改的。
還有需要別的歡迎在這個基礎自己定制
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!