RulerView - A Ruler View,一個水平尺子滾輪插件

介紹

這是一個水平的尺子滾輪插件

上對齊+顯示效果

上對齊+折半顯示效果

UpModel_HalfModel

漸顯效果

UpModel_HalfModel

特性

  1. 支持定義字體的大小和顏色和是否顯示刻度值
  2. 支持定義各個刻度的顏色和大小,目前有大,中,小三者,如圖片所示,有最大的是黑色,中等的為綠色,最小的是藍色。同時刻度間隔和刻度的大小可以調節。
  3. 支持自定義中間的指標器。
  4. 可以有上和下,兩種對齊的方式。
  5. 支持指定默認值。
  6. 支持設置最大和最小值。
  7. 兩種刻度格式SCALE和HALF,前者為有10格刻度,后者為只有0.5一格小的刻度。參考圖片
  8. 刻度尺的漸顯效果
  9. 支持顯示自定義的數據!

使用方法

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,這個項目是在他基礎上改的。

還有需要別的歡迎在這個基礎自己定制

項目地址: https://github.com/Sanjay-F/RulerView

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