简单好看的圆形进度条对话框开源库

澳门新葡亰3522平台游戏 2

本文由码农网 –
苏耀东原创,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划!

简单好看的圆形进度条对话框开源库

简介

本文介绍CircleProgressDialog开源库的使用及实现的详细过程,该开源库主要实现以下几个功能:

  • 自定义一个好看的圆形进度条,可直接在布局文件中使用,可设置圆环宽度、圆环颜色、圆环阴影大小等属性;
  • 实现自定义的dialog,用于用户等待时的显示,通过简单的代码即可直接调用显示,同时提供api进行颜色、文字等设置

通过本文可了解到自定义view的相关知识及自定义dialog的方法

github链接如下,觉得还可以请帮忙点下star~

github链接

澳门新葡亰3522平台游戏,简介

本文介绍CircleProgressDialog开源库的使用及实现的详细过程,该开源库主要实现以下几个功能:

  • 自定义一个好看的圆形进度条,可直接在布局文件中使用,可设置圆环宽度、圆环颜色、圆环阴影大小等属性;
  • 实现自定义的dialog,用于用户等待时的显示,通过简单的代码即可直接调用显示,同时提供api进行颜色、文字等设置

通过本文可了解到自定义view的相关知识及自定义dialog的方法
github链接如下,觉得还可以请帮忙点下star~
github链接
https://github.com/autume/CircleProgressDialog

使用效果

首先看下使用效果:

澳门新葡亰3522平台游戏 1

有两种使用方式

使用效果

首先看下使用效果:

澳门新葡亰3522平台游戏 2

有两种使用方式

布局文件中使用

提供loading_color、loading_width、shadow_offset进行设置

<com.syd.oden.circleprogressdialog.view.RotateLoading
            oden:loading_color="@color/colorAccent"
            oden:loading_width="6dp"
            oden:shadow_offset="8dp"
            android:layout_width="100dp"
            android:layout_height="100dp" />

布局文件中使用

提供loading_color、loading_width、shadow_offset进行设置

<com.syd.oden.circleprogressdialog.view.RotateLoading
            oden:loading_color="@color/colorAccent"
            oden:loading_width="6dp"
            oden:shadow_offset="8dp"
            android:layout_width="100dp"
            android:layout_height="100dp" />

代码中使用,对话框形式弹出

如果直接采用默认设置直接调用以下代码即可

CircleProgressDialog circleProgressDialog;
circleProgressDialog = new CircleProgressDialog(this);
circleProgressDialog.showDialog();

当然,还可以进行相关属性的设置,同时在等待的过程中可根据程序运行情况动态改变提示文字的内容及颜色

CircleProgressDialog circleProgressDialog;
circleProgressDialog = new CircleProgressDialog(this);
//可对对话框的大小、进度条的颜色、宽度、文字的颜色、内容等属性进行设置
circleProgressDialog.setDialogSize(15);
circleProgressDialog.setProgressColor(Color.parseColor("#FFFFFF"));
circleProgressDialog.setTextColor(Color.parseColor("#FFFFFF"));
...
circleProgressDialog.showDialog();  //显示对话框

//显示过程中可根据状态改变文字内容及颜色
circleProgressDialog.changeText("erro:...");
circleProgressDialog.changeTextColor(Color.parseColor("##EB0000"));

circleProgressDialog.dismiss();//关闭对话框

当然在使用前需先导入该库,仅需加入两行代码:

在工程的 build.gradle中加入:

allprojects {
        repositories {
            ...
            maven { url "https://jitpack.io" }
        }
    }

module的build.gradle中加入依赖:

dependencies {
            compile 'com.github.autume:CircleProgressDialog:1.0.0'
    }

代码中使用,对话框形式弹出

如果直接采用默认设置直接调用以下代码即可

CircleProgressDialog circleProgressDialog;
circleProgressDialog = new CircleProgressDialog(this);
circleProgressDialog.showDialog(); 

当然,还可以进行相关属性的设置,同时在等待的过程中可根据程序运行情况动态改变提示文字的内容及颜色

    CircleProgressDialog circleProgressDialog;
    circleProgressDialog = new CircleProgressDialog(this);
    //可对对话框的大小、进度条的颜色、宽度、文字的颜色、内容等属性进行设置
    circleProgressDialog.setDialogSize(15);
    circleProgressDialog.setProgressColor(Color.parseColor("#FFFFFF"));
    circleProgressDialog.setTextColor(Color.parseColor("#FFFFFF"));
    ...
    circleProgressDialog.showDialog();  //显示对话框

    //显示过程中可根据状态改变文字内容及颜色
    circleProgressDialog.changeText("erro:...");
    circleProgressDialog.changeTextColor(Color.parseColor("##EB0000"));

    circleProgressDialog.dismiss();//关闭对话框

当然在使用前需先导入该库,仅需加入两行代码:
在工程的 build.gradle中加入:

allprojects {
        repositories {
            ...
            maven { url "https://jitpack.io" }
        }
    }

module的build.gradle中加入依赖:

dependencies {
            compile 'com.github.autume:GestureLock:1.0.0'
    }
``

具体实现过程

具体实现过程

自定义view

自定义view

相关知识

绘制弧:

drawArc (RectF oval, float startAngle, float sweepAngle, boolean
useCenter, Paint paint)

  • oval是RecF类型的对象,其定义了椭圆的形状
  • startAngle指的是绘制的起始角度,钟表的3点位置对应着0度,如果传入的startAngle小于0或者大于等于360,那么用startAngle对360进行取模后作为起始绘制角度。
  • sweepAngle指的是从startAngle开始沿着钟表的顺时针方向旋转扫过的角度。如果sweepAngle大于等于360,那么会绘制完整的椭圆环。如果sweepAngle小于0,那么会用sweepAngle对360进行取模后作为扫过的角度。
  • useCenter是个boolean值,如果为true,表示在绘制完环之后,用椭圆的中心点连接环上的起点和终点以闭合环;如果值为false,表示在绘制完环之后,环的起点和终点直接连接,不经过椭圆的中心点。

设置矩形:

RectF rectF = new RectF(100, 100, 300, 300);

这四个参数分别代表的意思是:left top right bottom 左 上 右 下

  • left : 矩形左边的X坐标
  • top: 矩形顶部的Y坐标
  • right : 矩形右边的X坐标
  • bottom: 矩形底部的Y坐标

其实就是矩形的左上角和右下角的坐标值

相关知识

绘制弧:
drawArc (RectF oval, float startAngle, float sweepAngle, boolean
useCenter, Paint paint)

  • oval是RecF类型的对象,其定义了椭圆的形状
  • startAngle指的是绘制的起始角度,钟表的3点位置对应着0度,如果传入的startAngle小于0或者大于等于360,那么用startAngle对360进行取模后作为起始绘制角度。
  • sweepAngle指的是从startAngle开始沿着钟表的顺时针方向旋转扫过的角度。如果sweepAngle大于等于360,那么会绘制完整的椭圆环。如果sweepAngle小于0,那么会用sweepAngle对360进行取模后作为扫过的角度。
  • useCenter是个boolean值,如果为true,表示在绘制完环之后,用椭圆的中心点连接环上的起点和终点以闭合环;如果值为false,表示在绘制完环之后,环的起点和终点直接连接,不经过椭圆的中心点。

设置矩形:
RectF rectF = new RectF(100, 100, 300, 300);
这四个参数分别代表的意思是:left top right bottom 左 上 右 下

  • left : 矩形左边的X坐标
  • top: 矩形顶部的Y坐标
  • right : 矩形右边的X坐标
  • bottom: 矩形底部的Y坐标
    其实就是矩形的左上角和右下角的坐标值

首先加入自定义view的属性

我们定义了颜色,宽度,阴影偏移大小,是否显示等属性,format是值该属性的取值类型:

一共有:string,color,demension,integer,enum,reference,float,boolean,fraction,flag;

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <declare-styleable name="RotateLoading">
        <attr name="loading_width" format="dimension"/>
        <attr name="loading_color" format="color"/>
        <attr name="shadow_offset" format="dimension"/>
        <attr name="loading_visible" format="boolean"/>
    </declare-styleable>

</resources>

首先加入自定义view的属性

我们定义了颜色,宽度,阴影偏移大小,是否显示等属性,format是值该属性的取值类型:
一共有:string,color,demension,integer,enum,reference,float,boolean,fraction,flag;

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <declare-styleable name="RotateLoading">
        <attr name="loading_width" format="dimension"/>
        <attr name="loading_color" format="color"/>
        <attr name="shadow_offset" format="dimension"/>
        <attr name="loading_visible" format="boolean"/>
    </declare-styleable>

</resources>