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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!


