• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 首页2--动态自定义圆形进度条,首页2--圆形进度条

首页2--动态自定义圆形进度条,首页2--圆形进度条

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了ppt首页动态图,希网动态域名首页,淘宝首页动态效果,淘宝首页动态图,网站首页动态图等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

首页2--动态自定义圆形进度条,首页2--圆形进度条


A.绘制圆环,圆弧,文本

//1.画圆环
//原点坐标
float circleX = width / 2;
float circleY = width / 2;
//半径
float radius = width / 2 - roundWidth / 2;

//设置画笔的属性
paint.setColor(roundColor);
paint.setStrokeWidth(roundWidth);
paint.setStyle(Paint.Style.STROKE);

canvas.drawCircle(circleX, circleY, radius, paint);

//2.画圆弧
RectF oval = new RectF(roundWidth/2,roundWidth/2,width-roundWidth/2,width - roundWidth/2);

paint.setColor(roundProgressColor);

canvas.drawArc(oval, 0, progress * 360 / max, false, paint);

//3.画文本
paint.setTextSize(textSize);
paint.setColor(textColor);
paint.setStrokeWidth(0);
String text = progress * 100 / max + "%";
Rect bounds = new Rect();
paint.getTextBounds(text, 0, text.length(), bounds);

canvas.drawText(text, width / 2 - bounds.width() / 2, width / 2 + bounds.height() / 2, paint);

 
B.自定义属性的具体步骤

具体步骤:
1. 定义属性: 在values目录下创建attrs.xml

<declare-styleable name="RoundProgress">
 <attr name="roundColor" format="color"></attr>
 <attr name="roundProgressColor" format="color"></attr>
 <attr name="textColor" format="color"></attr>
 <attr name="roundWidth" format="dimension"></attr>
 <attr name="textSize" format="dimension"></attr>
</declare-styleable>

2. 在布局文件中引用当前应用的名称空间

xmlns:atguigu="http://schemas.android.com/apk/res-auto"

3. 在自定义视图标签中使用自定义属性

<com.atguigu.p2p.util.RoundProgress
    android:id="@+id/rp_home_progress"
    android:layout_width="120dp"
    android:layout_height="120dp"
    android:layout_gravity="center_horizontal"
    android:layout_marginTop="20dp"
    atguigu:roundColor="@android:color/darker_gray                  
atguigu:roundProgressColor="@android:color/holo_red_dark" atguigu:textColor="@color/text_progress" atguigu:roundWidth="10dp" atguigu:textSize="20sp" />

4. 在自定义View类的构造方法中, 取出布局中的自定义属性值

//1.得到所有自定义属性的数组
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.RoundProgress);
//2.获取自定义属性的值, 如果没有指定取默认值
roundColor = typedArray.getColor(R.styleable.RoundProgress_roundColor, Color.RED);
roundProgressColor = typedArray.getColor(R.styleable.RoundProgress_roundProgressColor, Color.GREEN);
textColor = typedArray.getColor(R.styleable.RoundProgress_textColor, Color.GREEN);
roundWidth = typedArray.getDimension(R.styleable.RoundProgress_roundWidth, UIUtils.dp2px(10));
textSize = typedArray.getDimension(R.styleable.RoundProgress_textSize, UIUtils.dp2px(20));
//3.释放资源数据
typedArray.recycle();


C.让圆环进度"动起来"

1.自定义RoundProgress类中提供进度属性的getter和setter方法
2.在HomeFragment的onSuccess()中:

 

 github:https://github.com/ganchuanpu/P2PInvest

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 首页2--动态自定义圆形进度条,首页2--圆形进度条

相关文章

  • 2017-05-226.3.1 数据存储与访问之——初见SQLite数据库
  • 2017-05-26订单流程view,订单view
  • 2017-05-26老人桌面===花花绿绿的桌面,老人桌面
  • 2017-05-26手机影音6--视频播放器的基本功能(3),6--基本功能
  • 2017-05-26我的第一节Android课,第一节Android课
  • 2017-05-26Android API Guides---App Widget Host
  • 2017-05-26如何判断设备是平板还是手机,判断设备平板手机
  • 2017-05-26Android开发学习——应用安装过程,android开发
  • 2017-05-26Redhat下puppet集中配置管理
  • 2017-05-26回顾自定义view三个构造函数,回顾view构造函数

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android开发学习之路--Content Provider之初体验
    • Android下拉刷新上拉加载更多的扩展ListView
    • 追踪表满导致keepalived vip 不通!
    • Android与H5互调(通过实例来了解Hybrid App),androidhybrid
    • 浅谈Android编码规范及命名规范,浅谈android编码规范
    • 如何解决Linux系统中的Navicat for MySQL 1045错误
    • ImageView的ScaleType属性,imageviewscaletype
    • android 通过uri获取bitmap图片并压缩,
    • Android sdk content loader 0%,androidsdk
    • android ImageSwitcher,imageswitcher

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有