----------------------------------↓↓圆形进度条(源代码下有属性解释)↓↓-----------------------------------------------------

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABDgAAAG5CAMAAABcGnRnAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkY2NDRFRjg4OUY0NTExRTY5NkRDOUMzNTY5MUJGRDlCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkY2NDRFRjg5OUY0NTExRTY5NkRDOUMzNTY5MUJGRDlCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjY0NEVGODY5RjQ1MTFFNjk2REM5QzM1NjkxQkZEOUIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjY0NEVGODc5RjQ1MTFFNjk2REM5QzM1NjkxQkZEOUIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5Xn4g/AAABgFBMVEWS3P+q4/////+Y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" alt="" width="408" height="166" />

一、shape 样式:(在drawable新建--》new--》Drawable resource file 并把原父级标签selector改为shape )


<?xml version="1.0" encoding="utf-8"?>
<!--把shape嵌套在rotate里面实现环形旋转-->
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="1080.0"
>
<shape
android:innerRadiusRatio="3"
android:shape="ring"
android:thicknessRatio="9"
android:useLevel="false">
<gradient
android:startColor="#ffffff"
android:endColor="#4ec5ff"
android:type="sweep" />
</shape>
</rotate>
二、style 样式:
<style name="ring">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:indeterminateDrawable">@drawable/buttonringstyle</item>
</style> 三、Button控件调用style样式:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.ly.blogtest.MainActivity">
<ProgressBar
style="@style/ring"
android:id="@+id/progressBar"
/>

</RelativeLayout>

----------------------------------↑↑↑↑圆形进度条↑↑↑↑↑-----------------------------------------------------

----------------------------------↓↓↓android:shape属性指定形状↓↓↓------------------------------

  • rectangle: 矩形,默认的形状,可以画出直角矩形、圆角矩形、弧形等
  • oval: 椭圆形,用得比较多的是画正圆
  • line: 线形,可以画实线和虚线
  • ring: 环形,可以画环形进度条

----------------------------------↑↑↑android:shape属性指定形状↑↑↑------------------------------

----------------------------------↓↓↓只适用于ring的特殊属性↓↓----------------------------------

注:shape中有一些特殊属性只适用于ring:

  • android:innerRadius 内环的半径
  • android:innerRadiusRatio 浮点型,以环的宽度比率来表示内环的半径,默认为3,表示内环半径为环的宽度除以3,该值会被android:innerRadius覆盖
  • android:thickness 环的厚度
  • android:thicknessRatio 浮点型,以环的宽度比率来表示环的厚度,默认为9,表示环的厚度为环的宽度除以9,该值会被android:thickness覆盖
  • android:useLevel 一般为false,否则可能环形无法显示,只有作为LevelListDrawable使用时才设为true

----------------------------------↑↑↑只适用于ring的特殊属性↑↑↑----------------------------------

----------------------------------↓↓shape的属性标签↓↓-----------------------------------------

<shape>
            <!-- 实心 -->
            <solid android:color="#ff9d77"/>
            <!-- 渐变 -->
            <gradient
                android:startColor="#ff8c00"
                android:endColor="#FFFFFF"
                android:angle="270" />
            <!-- 描边 -->
            <stroke
                android:width="2dp"
                android:color="#dcdcdc" />
            <!-- 圆角 -->
            <corners
                android:radius="2dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>

  • solid: 设置形状填充的颜色,只有android:color一个属性

    • android:color 填充的颜色
  • padding: 设置内容与形状边界的内间距,可分别设置左右上下的距离

    • android:left 左内间距
    • android:right 右内间距
    • android:top 上内间距
    • android:bottom 下内间距
  • gradient: 设置形状的渐变颜色,可以是线性渐变、辐射渐变、扫描性渐变

    • android:type 渐变的类型

      • linear 线性渐变,默认的渐变类型
      • radial 放射渐变,设置该项时,android:gradientRadius也必须设置
      • sweep 扫描性渐变
    • android:startColor 渐变开始的颜色
    • android:endColor 渐变结束的颜色
    • android:centerColor 渐变中间的颜色
    • android:angle 渐变的角度,线性渐变时才有效,必须是45的倍数,0表示从左到右,90表示从下到上
    • android:centerX 渐变中心的相对X坐标,放射渐变时才有效,在0.0到1.0之间,默认为0.5,表示在正中间
    • android:centerY 渐变中心的相对X坐标,放射渐变时才有效,在0.0到1.0之间,默认为0.5,表示在正中间
    • android:gradientRadius 渐变的半径,只有渐变类型为radial时才使用
    • android:useLevel 如果为true,则可在LevelListDrawable中使用
  • corners: 设置圆角,只适用于rectangle类型,可分别设置四个角不同半径的圆角,当设置的圆角半径很大时,比如200dp,就可变成弧形边了

    • android:radius 圆角半径,会被下面每个特定的圆角属性重写
    • android:topLeftRadius 左上角的半径
    • android:topRightRadius 右上角的半径
    • android:bottomLeftRadius 左下角的半径
    • android:bottomRightRadius 右下角的半径
  • stroke: 设置描边,可描成实线或虚线。

    • android:color 描边的颜色
    • android:width 描边的宽度
    • android:dashWidth 设置虚线时的横线长度
    • android:dashGap 设置虚线时的横线之间的距离

----------------------------------↑↑shape的属性标签↑↑-----------------------------------------

android 自定义控件——(四)圆形进度条的更多相关文章

  1. Android自定义控件之圆形进度条ImageView

    From:http://blog.csdn.net/xiadik/article/details/41648181package com.wangran.beautiful_girl_show.vie ...

  2. Android 自定义 View 圆形进度条总结

    Android 自定义圆形进度条总结 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 微信公众号:牙锅子 源码:CircleProgress 文中如有纰漏,欢迎大家留言指出. 最近 ...

  3. android 自定义图片圆形进度条

    感觉话一个圆形进度条挺简单的 ,但是却偏偏给了几张图片让你话,说实话我没接触过,感觉好难,还好百度有大把的资源,一番努力下终于画出来了. 代码如下. package com.etong.cpms.wi ...

  4. Android自定义控件系列之应用篇——圆形进度条

    一.概述 在上一篇博文中,我们给大家介绍了Android自定义控件系列的基础篇.链接:http://www.cnblogs.com/jerehedu/p/4360066.html 这一篇博文中,我们将 ...

  5. Android 高手进阶,自己定义圆形进度条

    背景介绍 在Android 开发中,我们常常遇到各种各样绚丽的控件,所以,依靠我们Android本身所带的控件是远远不够的,许多时候须要我们自定义控件,在开发的过程中.我们公司遇到了一种须要自己写的一 ...

  6. 【Android 应用开发】 自定义 圆形进度条 组件

    转载著名出处 : http://blog.csdn.net/shulianghan/article/details/40351487 代码下载 : -- CSDN 下载地址 : http://down ...

  7. Android 高手进阶之自定义View,自定义属性(带进度的圆形进度条)

      Android 高手进阶(21)  版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请注明地址:http://blog.csdn.net/xiaanming/article/detail ...

  8. Android 带进度的圆形进度条

    最近项目有个需求,做带进度从下到上的圆形进度条. 网上查了一下资料,发现这篇博客写得不错http://blog.csdn.net/xiaanming/article/details/10298163 ...

  9. Qt自定义控件系列(一) --- 圆形进度条

    本系列主要使用Qt painter来实现一些基础控件.主要是对平时自行编写的一些自定义控件的总结. 为了简洁.低耦合,我们尽量不使用图片,qrc,ui等文件,而只使用c++的.h和.cpp文件. 由于 ...

随机推荐

  1. swift 可选类型(optional)--- swift 入门

    一.思维导图 二.代码 //这样无形中就会让代码很丑陋 if x != nil && y != nil { print("x或y都不等于空") } print(&q ...

  2. 【AutoMapper官方文档】DTO与Domin Model相互转换(中)

    写在前面 AutoMapper目录: [AutoMapper官方文档]DTO与Domin Model相互转换(上) [AutoMapper官方文档]DTO与Domin Model相互转换(中) [Au ...

  3. 前端工程师手中的Sublime Text

    原文地址:http://css-tricks.com/sublime-text-front-end-developers/ 我的Blog:http://cabbit.me/sublime-text-f ...

  4. CSharpGL(19)用glReadPixels把渲染的内容保存为PNG图片(C#)

    CSharpGL(19)用glReadPixels把渲染的内容保存为PNG图片(C#) 效果图 本文解决了将OpenGL渲染出来的内容保存到PNG图片的方法. 下载 CSharpGL已在GitHub开 ...

  5. ABP源码分析五:ABP初始化全过程

    ABP在初始化阶段做了哪些操作,前面的四篇文章大致描述了一下. 为个更清楚的描述其脉络,做了张流程图以辅助说明.其中每一步都涉及很多细节,难以在一张图中全部表现出来.每一步的细节(会涉及到较多接口,类 ...

  6. Python学习--02输入和输出

    命令行输入 x = input("Please input x:") y = raw_input("Please input x:") 使用input和raw_ ...

  7. oracle11g 重装操作系统后,如何利用原有oracle表空间文件还原数据库

    最近由于系统重装,在还原dmp备份文件时,由于数据原因(用exp命令导出时表没有导出全部),导致系统不能正常运行.根据网上的信息和个人实际情况,做个记录,便于后用. oracle 导出空表方法: 1. ...

  8. AutoMapper对internal访问级别属性的映射

    最近在使用DDD重新搭建公司内部OA的架构,具体情况搭好了应该会写一下,这里说的是今天遇到的问题. 先简单说一下相关的几个部分: 1.聚合.聚合分成了两个模块:一个包含审批单据等估计至少今年不会怎么变 ...

  9. 窥探Vue.js 2.0

    title: 窥探Vue.js2.0 date: 2016-09-27 10:22:34 tags: vue category: 技术总结 --- 窥探Vue.js2.0 令人兴奋的Vue.js 2. ...

  10. 原生js之四步走搞定Ajax

          说到Ajax,不得不先提一下HTTP(HTTP,HyperText Transfer Protocol)协议,中文名:超文本传输协议,是互联网上应用最为广泛的一种网络协议.所有的WWW文件 ...