亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

YCProgress自定義百分比進度條

發布時間:2020-07-18 12:39:42 來源:網絡 閱讀:477 作者:楊充 欄目:移動開發
目錄介紹
  • 1.本庫優勢亮點
  • 2.使用介紹
    • 2.1 圓環百分比進度條
    • 2.2 直線百分比進度條
    • 2.3 仿殺毒類型百分比進度條
  • 3.注意要點
  • 4.效果展示
  • 5.其他介紹

1.本庫優勢亮點

  • 圓環百分比進度條
    • 簡便且小巧,支持設置多種屬性。可以設置內圓和外圓的顏色,設置圓環的邊緣寬度。
    • 支持設置倒計時總時間,可以調用start開始倒計時,也可以調用stop暫停倒計時,也可以自定義設置進度
  • 仿殺毒類型百分比進度條
    • 支持設置多種類型,比如設置百分比+單位類型,或者設置空類型【也就是不顯示中間百分比】
    • 支持設置進度條的顏色,未更新的進度條顏色;設置百分比文字大小,顏色;支持設置單位等多種屬性
    • 支持允許多線程訪問,對于設置setProgress,添加synchronized關鍵字修飾。設置進度progress,如果小于0或者大于100,則拋異常。避免開發者使用造成其他問題。
  • 針對進度條,對于設置color顏色的方法,增加了注解@ColorInt,限制開發者調用color資源
  • 使用注解代替了枚舉,針對設置枚舉的方法,使用注解限制開發者調用時傳入的類型。具體可見代碼案例!
  • 注釋十分詳細,作為開源的lib庫,我覺得要讓使用者一目了然。方便調用同時,知道每個方法的作用。
  • 代碼量少,如果想學習并深入自定義控件,可以從簡單開始。這個項目就很符合!
  • 項目地址:https://github.com/yangchong211/YCProgress

2.使用介紹

  • 集成庫:compile 'cn.yc:YCProgressLib:1.2.6'
2.1 圓環百分比進度條
  • 在布局中

    //也可以設置布局中的attr屬性
    <com.ns.yc.ycprogresslib.CircleProgressbar
        android:id="@+id/pb_1"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:text="進度條" />
    
  • 使用方法

    //設置類型
    pb_1.setProgressType(ProgressBarUtils.ProgressType.COUNT);
    //設置圓形的填充顏色
    pb_1.setInCircleColor(getResources().getColor(R.color.redTab));
    //設置外部輪廓的顏色
    pb_1.setOutLineColor(getResources().getColor(R.color.grayLine));
    //設置進度監聽
    pb_1.setCountdownProgressListener(1, progressListener);
    //設置外部輪廓的顏色
    pb_1.setOutLineWidth(2);
    //設置進度條線的寬度
    pb_1.setProgressLineWidth(5);
    //設置進度
    pb_1.setProgress(60);
    //設置倒計時總時間
    pb_1.setTimeMillis(3000);
    //設置進度條顏色
    pb_1.setProgressColor(getResources().getColor(R.color.colorPrimary));
    
    //開始
    pb_1.start();
    //暫停
    pb_1.stop();
    //重新開始
    pb_1.reStart();
2.2 直線百分比進度條
  • 在布局中

    <com.ns.yc.ycprogresslib.NumberProgressbar
        android:id="@+id/bar1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    
    <com.ns.yc.ycprogresslib.NumberProgressbar
        android:id="@+id/bar2"
        android:layout_marginTop="10dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:progress_max="100"
        app:progress_reached_bar_height="3dp"
        app:progress_unreached_bar_height="3dp"
        app:progress_reached_color="@color/colorPrimary"
        app:progress_unreached_color="@color/gray3"
        app:progress_text_size="14sp"
        app:progress_text_color="@color/colorAccent"
        app:progress_text_visibility="visible"/>
  • 代碼調用

    bar1 = (NumberProgressbar) findViewById(R.id.bar1);
    //設置倒計時總時間
    bar1.setTimeMillis(10000);
    //設置最大進度條的值
    bar1.setMax(100);
    //設置進度條文本的顏色
    bar1.setProgressTextColor(this.getResources().getColor(R.color.colorAccent));
    //設置進度條文本的大小
    bar1.setProgressTextSize(ProgressBarUtils.sp2px(this,14));
    //設置百分比文字內容是否可見
    bar1.setNumberTextVisibility(ProgressBarUtils.NumberTextVisibility.Visible);
    //設置百分比進度條的高度
    bar1.setReachedBarHeight(10);
    //設置未更新百分比進度條的高度
    bar1.setUnreachedBarHeight(10);
    //設置百分比進度條的顏色
    bar1.setReachedBarColor(this.getResources().getColor(R.color.redTab));
    //設置未更新百分比進度條的顏色
    bar1.setUnreachedBarColor(this.getResources().getColor(R.color.blackText2));
    //設置百分比進度條的監聽
    bar1.setOnProgressBarListener(new OnNumberProgressListener() {
        @Override
        public void onProgressChange(int current, int max) {
    
        }
    });
    
    //開始
    bar1.start();
    //暫停
    bar1.stop();
2.3 仿殺毒類型百分比進度條
  • 布局代碼
    <com.ns.yc.ycprogresslib.RingProgressBar
        android:id="@+id/bar_percent"
        android:layout_width="100dp"
        android:layout_height="100dp"/>
  • 如何調用
    bar_percent = (RingProgressBar) findViewById(R.id.bar_percent);
    //設置進度
    bar_percent.setProgress(0);
    //設置更新進度條顏色
    bar_percent.setDotColor(this.getResources().getColor(R.color.colorAccent));
    //設置未更新部分的進度條顏色
    bar_percent.setDotBgColor(this.getResources().getColor(R.color.blackText));
    //設置百分比文字顏色
    bar_percent.setPercentTextColor(this.getResources().getColor(R.color.blackText1));
    //設置百分比文字大小
    bar_percent.setPercentTextSize(ProgressBarUtils.dp2px(this,16.0f));
    //設置展示的類型
    bar_percent.setShowMode(ProgressBarUtils.RingShowMode.SHOW_MODE_PERCENT);
    //設置單位的文字內容
    bar_percent.setUnitText("%");
    //設置單位的文字大小
    bar_percent.setUnitTextSize(ProgressBarUtils.dp2px(this,16.0f));
    //設置單位的文字顏色
    bar_percent.setUnitTextColor(this.getResources().getColor(R.color.blackText1));
  • 可以設置多種類型
    • 第一種:百分比+單位【支持自己設置單位,比如設置%,或者設置毫秒s等】
    • 第二種:空顯示模式【也就是不顯示中間的部分】

3.注意要點

  • 3.1 不論是圓環進度條還是直線進度條,在調用setProgress設置進度時,增加了驗證進度的功能。因為如果設置值超過100或者小于0,該方法就起作用呢!
    /**
     * 驗證進度。
     *
     * @param progress      你要驗證的進度值。
     * @return              返回真正的進度值。
     */
    private int validateProgress(int progress) {
        if (progress > 100){
            progress = 100;
        } else if (progress < 0){
            progress = 0;
        }
        return progress;
    }
  • 3.2 針對CircleProgressbar和NumberProgressbar自定義控件,如果調用start方法開始循環執行setProgress,程序意外銷毀,則注意:
    /**
     * 當自定義控件銷毀時,則調用該方法
     */
    @Override
    protected void onDetachedFromWindow() {
        super.onDetachedFromWindow();
        stop();
    }
  • 項目地址:https://github.com/yangchong211/YCProgress

4.效果展示

  • YCProgress自定義百分比進度條
    YCProgress自定義百分比進度條
    YCProgress自定義百分比進度條
    YCProgress自定義百分比進度條
    YCProgress自定義百分比進度條
    YCProgress自定義百分比進度條

5.其他介紹

版本更新說明
  • v1.0.0 更新于2016/2/10 作用于投資界下載更新進度條,學習自定義控件
  • v1.1.1 更新于2016/8/12 針對圓環進度條,添加自定義attr屬性
  • v1.1.2 更新于2017/3/10 針對圓環進度條添加設置倒計時總時間,start和stop方法
  • v1.1.3 更新于2017/5/27 針對設置進度的方法,增加校驗,不能小于0或者大于100
  • v1.2.5 更新于2018年8月24日 添加了直線百分比進度條,針對部分方法添加注解
  • v1.2.6 更新于2018年11月30日 添加了詳細的注釋
  • v1.2.7 更新于2018/12/3 更新targetSdkVersion版本是27
  • 關于直線百分比進度條參考了代碼家NumberProgressBar項目:https://github.com/daimajia/NumberProgressBar
關于博客匯總鏈接
  • 1.技術博客匯總
  • 2.開源項目匯總
  • 3.生活博客匯總
  • 4.喜馬拉雅音頻匯總
  • 5.其他匯總
其他推薦
  • 博客筆記大匯總【15年10月到至今】,包括Java基礎及深入知識點,Android技術博客,Python學習筆記等等,還包括平時開發中遇到的bug匯總,當然也在工作之余收集了大量的面試題,長期更新維護并且修正,持續完善……開源的文件是markdown格式的!同時也開源了生活博客,從12年起,積累共計47篇[近20萬字],轉載請注明出處,謝謝!
  • 鏈接地址:https://github.com/yangchong211/YCBlogs
  • 如果覺得好,可以star一下,謝謝!當然也歡迎提出建議,萬事起于忽微,量變引起質變!
關于LICENSE
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

五指山市| 长海县| 禄劝| 石楼县| 大同市| 宿州市| 松阳县| 白沙| 衡东县| 温州市| 额敏县| 九江市| 衢州市| 丰原市| 姚安县| 彰武县| 钦州市| 河津市| 镇平县| 屯昌县| 油尖旺区| 长白| 隆德县| 交城县| 铜山县| 滦南县| 五台县| 五大连池市| 达州市| 荣昌县| 浦县| 濮阳县| 固始县| 张家港市| 孙吴县| 平利县| 福建省| 皮山县| 东宁县| 合水县| 五大连池市|