一个简单的Loading控件

实现效果如下:

使用方法:

在layout文件中添加以下代码:

   <com.example.jack.ui.widget.RingLoading
        android:layout_width="20.0dip"
        android:layout_height="20.0dip"
   />

具体代码如下:

package com.example.jack.ui.widget;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.SweepGradient;
import android.util.AttributeSet;
import android.view.View;

/**
 * Created by pengf on 2017/4/10.
 */

public class RingLoading extends View
{
    private static final int PROGRESS = 5;
    private int centerX;
    private int centerY;
    private Context context;
    private int mProgressColor ;
    private Matrix matrix;
    private final Paint paint;
    private int roundWidth = 10;
    private int start = 0;

    public RingLoading(Context context, AttributeSet attrs)
    {
        super(context, attrs);
        this.context = context;
        this.paint = new Paint();
        this.paint.setAntiAlias(true);
        this.paint.setStyle(Paint.Style.STROKE);
        this.paint.setStrokeWidth(this.roundWidth);
        this.mProgressColor =Color.parseColor("#ffffcc00");

    }

    @Override
    protected void onDraw(Canvas canvas)
    {
        int center = getWidth() / 2;
        int radius = center - this.roundWidth / 2;
        SweepGradient sweepGradient = new SweepGradient(this.centerX, this.centerY, Color.TRANSPARENT, this.mProgressColor);
        this.paint.setShader(sweepGradient);
        this.matrix = new Matrix();
        this.matrix.postRotate(this.start, this.centerX, this.centerY);
        canvas.concat(this.matrix);
        canvas.drawCircle(center, center, radius, this.paint);
        this.start = (PROGRESS + this.start);
        invalidate();
    }

    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh)
    {
        super.onSizeChanged(w, h, oldw, oldh);
        this.centerX = (w / 2);
        this.centerY = (h / 2);
    }
}
时间: 2024-10-24 23:38:35

一个简单的Loading控件的相关文章

在iOS上实现一个简单的日历控件

转自:http://blog.csdn.net/jasonblog/article/details/21977481 近期需要写一个交互有点DT的日历控件,具体交互细节这里略过不表. 不过再怎么复杂的控件,也是由基础的零配件组装起来的,这里最基本的就是日历控件. 先上图: 从图中可以看出日历控件就是由一个个小方块组成的,每一行有7个小方块,分别表示一周的星期天到星期六. 给定一个月份,我们首先需要知道这个月有多少周.那么如何确定一个月有多少周呢? 我是这么想的,在NSDate上做扩展: [cpp

如何在Android实现桌面清理内存简单Widget小控件

如何在Android实现桌面清理内存简单Widget小控件 我们经常会看到类似于360.金山手机卫士一类的软件会带一个widget小控件,显示在桌面上,上面会显示现有内存大小,然后会带一个按键功能来一键清理内存,杀死后台进程的功能,那么这个功能是如何实现的呢,我们今天也来尝试做一个类似的功能的小控件. 效果图: 一.UI部分的编写: 参照Google的文档,首先在建立一个类继承AppWidgetProvider import android.appwidget.AppWidgetProvider

Android开源载入视图(loading)控件分享

http://www.see-source.com/androidwidget/list.html?type=7 AndroidProgressLayout 可根据加载情况显示提示信息的控件 GoogleProgressBar 用Android实现了google中几种风格的进度条 Titanic 实现动态波浪形动画逐渐填充TextView,可以用在加载 BounceProgressBar 跳跃波浪动画效果的ProgressBar,类似与桌面 CircularProgress 一个模仿androi

WPF实现炫酷Loading控件

Win8系统的Loading效果还是很不错的,网上也有人用CSS3等技术实现,研究了一下,并打算用WPF自定义一个Loading控件实现类似的效果,并可以让用户对Loading的颗粒(Particle)背景颜色进行自定义,话不多说,直接上代码: 1.用VS2012新建一个WPF的用户控件库项目WpfControlLibraryDemo,VS自动生成如下结构: 2.删除UserControl1.xaml,并新建一个Loading的CustomControl(不是UserControl),如下图所示

C# winform窗体简单保存界面控件参数到xml

原文:C# winform窗体简单保存界面控件参数到xml 引用网上的 XMLHelper 地址 :https://www.cnblogs.com/chnboy/archive/2009/04/02/1427652.html 稍做修改 using System; using System.Linq; using System.Xml; namespace FormTest { /// <summary> /// XMLHelper XML文档操作管理器 /// </summary>

一个简单的loading动画,version 1.0

一个简单的loading动画:如图 点我查看

winform 自定义控件:半透明Loading控件

winform  自定义控件:半透明Loading控件 by wgscd date:2015-05-05 效果: using System;using System.Drawing;using System.Windows.Forms;using System.ComponentModel;using System.Threading; namespace wgscd{ /// <summary> /// 自定义控件:半透明控件 /// </summary> [ToolboxBit

Aspose是一个很强大的控件,可以用来操作word,excel,ppt等文件

Aspose是一个很强大的控件,可以用来操作word,excel,ppt等文件,用这个控件来导入.导出数据非常方便.其中Aspose.Cells就是用来操作Excel的,功能有很多.我所用的是最基本的功能,读取Excel的数据并导入到Dataset或数据库中.读取Excel表格数据的代码如下: 首先要引入命名空间:using Aspose.Cells; Workbook workbook = new Workbook(); workbook.Open("C:\\test.xlsx");

如何获取上一个页面中checkbox控件选中的值

php开发中,<php开发中.<php开发中.如何获取上一个页面中checkbox控件选中的值呢?并输出出来,以下是代码示例: <? $music=$_POST['music']; //取得所选中的checkbox个数 $coun=count$music; ifis_arrai$music{ echo'您选择的 : '; foreach$musicas$kei=>$var echo'  ['.$var.']'; echo$key; } ?> *****************