自定义圆形滚动条(透明效果)--利用开源项目ProgressWheel

开源项目ProgressWheel为我们提供了多样化的圆形滚动条,本篇带领读者利用它来实现自定义的滚动条。在官方demo中,一屏显示了好几种风格,而本篇只介绍一种风格,就是居中显示,透明布局。 而且使用static进行了封装,启动和关闭都只需要一行代码即可完成。

  1. 开源项目ProgressWheel地址:

    https://github.com/Todd-Davies/ProgressWheel

  2. 开源项目ProgressWheel效果图:

  3. 自定义滚动条(透明效果)的实现:

    1). xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ProgressWheel="http://schemas.android.com/apk/res-auto"
    android:id="@+id/layout_progress_wheel"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:orientation="vertical"
    >

    <com.todddavies.components.progressbar.ProgressWheel
            android:id="@+id/pw_spinner"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_gravity="center"
            ProgressWheel:barColor="#0097D6"
            ProgressWheel:barLength="100dp"
            ProgressWheel:barWidth="5dp"
            ProgressWheel:rimColor="#330097D6"
            ProgressWheel:rimWidth="10dp"
            ProgressWheel:text="Loading..."
            ProgressWheel:textColor="#222"
            ProgressWheel:contourColor="#330097D6"
            ProgressWheel:textSize="14sp" />
</LinearLayout>

2). style:

  <style name="Dialog" parent="android:style/Theme.Dialog">
        <item name="android:background">#00000000</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsFloating">true</item>
    </style>

3). java代码:

   public class LoadingCommentDialog {
    private static Dialog mDialog = null;
    private static ProgressWheel mProgressWheel = null;

    public static void showCommentDialog(Context context, String text) {
        closeCommentDialog(context);

        WindowManager m = ((Activity) context).getWindowManager();
        Display d = m.getDefaultDisplay(); // 获取屏幕宽、高用

        mDialog = new Dialog(context, R.style.Dialog);

        LayoutInflater inflater = ((Activity) context).getLayoutInflater();
        View layout = inflater.inflate(R.layout.layout_progress_wheel, null);
        mDialog.setContentView(layout);

        mProgressWheel = (ProgressWheel) layout.findViewById(R.id.pw_spinner);
        mProgressWheel.setText(text);

        Window dialogWindow = mDialog.getWindow();//
        WindowManager.LayoutParams lp = dialogWindow.getAttributes();
        lp.gravity = Gravity.CENTER;

        // lp.x = 20; // 新位置X坐标
        // lp.y = 60; // 新位置Y坐标
        lp.width = d.getWidth() - 20; // 宽度
        // lp.height = (int) (d.getHeight()*0.4); // 高度

        dialogWindow.setAttributes(lp);
        mProgressWheel.spin();
        mDialog.show();
    }

    public static void closeCommentDialog(Context context) {
        if (mProgressWheel!=null) {
            mProgressWheel.stopSpinning();
            mProgressWheel = null;
        }

        if (mDialog!=null) {
            mDialog.dismiss();
            mDialog = null;
        }
    }

}

4). 调用方法:

打开:
LoadingCommentDialog.showCommentDialog(mContext,mContext.getString(R.string.loading)); //这里可以自定义圆形中的文字。
//YourFouction() //这里,是开始你的线程,或者异步请求,或者耗时的操作...

关闭:
LoadingCommentDialog.closeCommentDialog(mContext);

最后,附上自定义滚动条(透明效果)的效果图:

开源的力量是无穷的!

时间: 2024-10-14 07:06:18

自定义圆形滚动条(透明效果)--利用开源项目ProgressWheel的相关文章

自定义圆形滚动条(在自定义标题栏中显示)--利用开源项目ProgressWheel(二)

本篇是ProgressWheel使用的第二篇(尾篇),功能是在自定义标题栏中显示ProgressWheel滚动条. 本篇引用的开源项目依然是ProgressWheel,地址: https://github.com/Todd-Davies/ProgressWheel 本篇效果图: 自定义滚动条(在自定义标题栏中显示)的实现: 1)activity_progress_wheel_test. xml: <RelativeLayout xmlns:android="http://schemas.a

利用开源项目jadx反编译Android应用

利用开源项目jadx反编译Android应用 利用Github开源项目jadx可以直接对 .dex, .apk, .jar, .class 类型的文件进行直接反编译 对比之前 apktool(解包apk) + dex2jar(将.dex转换成.jar) + jd-gui (查看.jar文件)反编译三件套, jadx的优点在于: 1. 可以一行命令直接反编译恢复出.java文件 命令: jadx -d out calc.apk 需要先把apk拷贝到bin目录下, 如图:  2. 可以一行命令直接以

我如何在OSC上做开源项目

昨天 @红薯 约我了!不过,是约稿,让我讲讲我在OSC上如何做开源项目和利用开源项目赚钱.如何做开源软件,大家都明白,所以重点是在如何利用开源软件赚钱. 先简单介绍一下我的开源项目:开源进销存PSI ( http://git.oschina.net/crm8000/PSI),是一款企业管理软件,帮助企业管理采购.销售和库存.这是我的创业项目,不是业余爱好,所以从项目一开始启动,我就规划了整个商业化的步骤.进销存产品本身没有什么技术含量,所以必须从商业模式上创新,才有可能立足和发展. 互联网上的生

GitHub Android 最火开源项目Top20 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上。基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。

1. ActionBarSherlock(推荐) ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便地使用所有版本的Android动作栏的设计模式. 对于Android 4.0及更高版本,ActionBarSherlock可以自动使用本地ActionBar实现,而对于之前没有ActionBar功能的版本,基于Ice Cream Sandwich的自定义动作栏实现将自动围绕布局.能够让开发者轻松开发

Andorid自定义圆形渐变色进度条的从实现到开源

信自己也是一种信仰. 写在前面的话 3月初我在自定义控件概述中挖下的几个坑,前一段时间已经基本填完了,自定义控件的几种实现方式也分别写了demo来进行说明.今天我们来聊一聊如何把自己封装一个圆形渐变色进度条控件开源到github,并且上传到jcenter方便别人远程依赖.先看下效果图: 连接github并提交新项目 前提条件: 安装Git客户端(下载地址) 有GitHub账号 创建新项目并提交到Github: 在AndroidStudio中新建一个项目 配置Git:Settings -> Ver

【开源项目解析】背景有波浪效果的TextView——从Titanic项目学习BitmapShader的使用

Hello,好久没写文章了,有木有想我呀~ 正式工作已经过去一个月了,发现在青岛实习和在北京工作,感觉完全不一样呢~ 现在每天晚上回到住的地方,都累的想睡觉-所以也没心情写太多文章和大家分享了,不过我会尽快调整状态,重振雄风的!(哪里起来怪怪的-) 项目介绍 我的想法 实现思路 项目介绍 这篇文章,会介绍一个开源项目,叫做Titanic,是的,中文名就叫"泰坦尼克"- 下面是项目地址 https://github.com/RomainPiel/Titanic 要实现的效果是下面这样滴

【Android开源项目分析】自定义圆形头像CircleImageView的使用和源码分析

本文分为三大部分: CircleImageView的使用 CircleImageView源码分析 Android自定义View总结 CircleImageView项目源码下载: https://github.com/hdodenhof/CircleImageView 打开源码会发现主要就是一个继承了ImageView 的类--CircleImageView .java,代码优雅精致,效果很nice.下面会进行源码分析,让我加深了不少Canvas.BitmapShader.Matrix相关知识.

android开源系列:CircleImageView自定义圆形控件的使用

1.自定义圆形控件github地址:https://github.com/hdodenhof/CircleImageView 主要的类: package de.hdodenhof.circleimageview; import edu.njupt.zhb.main.R; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Bitmap; import andr

百度DMLC分布式深度机器学习开源项目(简称“深盟”)上线了如xgboost(速度快效果好的Boosting模型)、CXXNET(极致的C++深度学习库)、Minerva(高效灵活的并行深度学习引擎)以及Parameter Server(一小时训练600T数据)等产品,在语音识别、OCR识别、人脸识别以及计算效率提升上发布了多个成熟产品。

百度为何开源深度机器学习平台? 有一系列领先优势的百度却选择开源其深度机器学习平台,为何交底自己的核心技术?深思之下,却是在面对业界无奈时的远见之举. 5月20日,百度在github上开源了其深度机器学习平台.此番发布的深度机器学习开源平台属于"深盟"的开源组织,其核心开发者来自百度深度学习研究院(IDL),微软亚洲研究院.华盛顿大学.纽约大学.香港科技大学,卡耐基·梅陇大学等知名公司和高校. 通过这一开源平台,世界各地的开发者们可以免费获得更优质和更容易使用的分布式机器学习算法源码,