原标题:Android零基础入门|自定义酷炫进度条

Android系统默认的ProgressBar往往都不能满足实际开发需要,一般都会开发者自定义ProgressBar。

在Android开发中,自定义ProgressBar一般有三种思路来完成。

一、在系统进度条基础上优化

首先来看一下style="@android:style/Widget.ProgressBar.Horizontal"的源码。鼠标移动到style属性值上,按住Ctrl键,鼠标左键点击即可打开对应资源文件。

当然也可以直接找到源码文件直接打开进行查看,本地相对路径为sdk\platforms\android-25\data\res\values\styles.xml。打开后可以看到源码如下:

从上述代码可以看到,水平进度条的核心就是android:progressDrawable,接着继续去寻找progress_horizontal的源码(本地相对路径为sdk\platforms\android-25\data\res\drawable\progress_horizontal.xml),如下:

从上述代码可以发现,progress_horizontal一共包括3个item,分别为background、secondProgress、progress,看名字就能知道其大概作用,其中我们比较关心的应该是后两个。

其实把这个文件copy一份到自己的项目下,就可以随心所欲的修改shape属性的圆角、渐变等,实现我们想要的效果了。

由于此处我们还没有学习Drawable资源,所以这里先给大家介绍一下概念,关于具体如何操作可以等学了Drawable资源后,再回过头来自定义ProgressBar。欢迎关注微信公众分享达人秀ShareExpert获取第一手教程,也可添加小编微信jinwenyu2010,然后拽入Android零基础入门技术讨论微信群一同学习。 二、使用动画来代替进度条

使用动画来替代进度条,其实就是使用一套连续图片,形成一个帧动画,当需要进度图的时候,让动画可见,不需要的时候让动画不可见即可。

继续使用WidgetSample工程的advancedviewsample模块,首先在drawable目录下准备一组连续的图片,然后在res/drawable/目录下定义一个myprogressbar.xml的资源文件,代码如下:

关于上述代码的具体意义会在Android动画进行讲解,此处大家知道如何操作即可。

接着新建一个布局文件myprogressbar_layout.xml,里面仅仅有一个ImageView即可,用于显示进度条,把src设置为上述drawable资源即可,代码如下:

新建MyProgressbarActivity.java文件,加载上面新建的布局文件,具体代码如下:

这里只是简单启动上述定义的动画,在开发中你可以根据需要显示和隐藏即可。

修改启动的Activity,运行可以看到如下图所示效果。

三、通过自定义View来实现进度条

使用动画来完成进度条实际上比较巧妙,但还是不能满足实际开发需要,那么最强大的自定义ProgressBar就是重写View来实现了,可以定义出任何需要的进度条。

如定义一个CircleProgressBar类,继承View,并重写其方法,示例代码如下:

关于上述代码的具体含义,此处不理解没关系,可以等学了Android绘图后再回过头来进行学习。

然后新建一个布局文件circleprogressbar_layout.xml,使用上述的自定义进度条类,代码如下:

修改MainActivity.java里面加载的布局文件,运行后其效果如下图所示。

如果已经学会本期里面提及的内容,那就可以放手去打造属于你自己的酷炫进度条了。如果不会也没关系,这里只做了解,等后期学完后再来回顾即可。

今天就先到这里,如果有问题欢迎留言一起探讨,也欢迎加入Android零基础入门技术讨论微信群,共同成长!

此文章版权为微信公众号分享达人秀(ShareExpert)——鑫鱻所有,若需转载请联系作者授权,特此声明!

往期总结分享:

第1节:Android的前世今生

第2节:Android 系统架构和应用组件那些事

第3节:带你一起来聊一聊Android开发环境

第4节:正确安装和配置JDK

第5节:善用ADT Bundle

第6节:配置优化SDK Manager

第7节:搞定Android模拟器

第8节:HelloWorld,第一趟旅程出发点

第9节:Android实战,不懂代码也可以开发

第10节:开发IDE迎来Android Studio

第11节:运行Android Studio工程

第12节:熟悉Android Studio界面

第13节:Android Studio配置优化

第14节:使用高速Genymotion

第15节:掌握Android Studio项目结构

第16节:Android用户界面开发概述

第17节:文本框TextView

第18节:输入框EditText

第19节:按钮Button

第20节:选择控件CheckBox和RadioButton

第21节:开关控件ToggleButton和Switch

第22节:图像视图ImageView

第23节:ImageButton和ZoomButton

第24节:自定义View简单使用

第25节:简单且最常用的LinearLayout

第26节:layout_gravity和gravity大不同

第27节:正确使用padding和margin

第28节:轻松掌握RelativeLayout相对布局

第29节:善用TableLayout表格布局

第30节:两分钟掌握FrameLayout帧布局

第31节:少用的AbsoluteLayout绝对布局

第32节:新推出的GridLayout网格布局

第33节: Android事件处理概述

第34节:Android中基于监听的事件处理

第35节:Android中基于回调的事件处理

第36节:Android系统事件的处理

第37节:初识ListView

第38节:初识Adapter

第39节:ListActivity和自定义列表项

第40节:自定义ArrayAdapter

第41节:使用SimpleAdapter

第42节:自定义BaseAdapter

第43节:ListView优化和列表首尾使用

第44节:ListView数据动态更新

第45节:网格视图GridView

第46节:列表选项框Spinner

第47节:AutoCompleteTextView自动文本

第48节:ExpandableListView多级选择

第49节:AdapterViewFlipper图片轮播

第50节:StackView卡片堆叠

第51节:进度条ProgressBar返回搜狐,查看更多

责任编辑:

android自定义进度条图片,Android零基础入门|自定义酷炫进度条相关推荐

  1. Android Studio新手–下载安装配置–零基础入门–基本使用–调试技能–构建项目基础–使用AS应对常规应用开发

    转自:http://blog.csdn.net/yanbober/article/details/45306483 目标:Android Studio新手–>下载安装配置–>零基础入门–& ...

  2. python 二进制流转图片_Python零基础入门到精通-5.1节:Python程序的执行过程

    教程引言: 系统地讲解计算机基础知识,Python的基础知识, 高级知识,web开发框架,爬虫开发,数据结构与算法,nginx, 系统架构.一步步地帮助你从入门到就业. 5.1.1 在命令行中执行Py ...

  3. C语言 va_start / va_end / va_arg 自定义 printf 函数 - C语言零基础入门教程

    目录 一.前言 二.函数不定长参数简介 1.va_start 2.va_arg 3.va_end 三.win32 控制台版本 四.MFC 对话框版本 五.猜你喜欢 零基础 C/C++ 学习路线推荐 : ...

  4. Android通用流行框架大全,零基础入门学习android

    | Picasso-transformations | 一个为Picasso提供多种图片变换的库 | | Glide-transformations | 一个为Glide提供多种图片变换的库 | | ...

  5. 如何导出Axure原型设计中的图片?零基础入门教程

    Axure 是一款广为人知的原型设计工具,特别适用于新手产品经理或产品设计初学者.然而,如果用户想要在浏览器中预览 Axure 原型图,需要安装插件才能实现.而安装完 Axure RP Chrome ...

  6. android arrayadapter自定义,Android零基础入门|自定义ArrayAdapter

    原标题:Android零基础入门|自定义ArrayAdapter ListView用起来还是比较简单的,也是Android应用程序中最重要的一个组件,但其他ListView可以随你所愿,能够完成很多想 ...

  7. android 表格控件点击事件,Android零基础入门|RecyclerView点击事件处理

    原标题:Android零基础入门|RecyclerView点击事件处理 前面两期学习了RecyclerView的简单使用,并为其item添加了分割线.在实际运用中,无论是List还是Grid效果,基本 ...

  8. android生命周期方法,Android零基础入门|Activity状态和生命周期方法

    原标题:Android零基础入门|Activity状态和生命周期方法 前面两期我们学习了Activity的创建和注册.以及启动和关闭,也学会了重写onCraete方法,这些知识在实际开发中远远不够,还 ...

  9. android 搜索框组件,Android零基础入门|搜索框组件SearchView

    原标题:Android零基础入门|搜索框组件SearchView 一.SearchView概述 SearchView是搜索框组件,它可以让用户在文本框内输入文字,并允许通过监听器监控用户输入,当用户输 ...

  10. android 自动补全方法,Android零基础入门|自动完成文本框AutoCompleteTextView

    原标题:Android零基础入门|自动完成文本框AutoCompleteTextView 上一期学习的Spinner的使用,掌握的怎么样?本期一起来学习AutoCompleteTextView的使用. ...

最新文章

  1. JS 时间戳转换成日期
  2. MediaWiki 1.19.2 发布 - 开源 Wiki 系统
  3. Python(88)_双下划线方法
  4. 使用apache的HttpGet\HttpPost获取返回内容编码问题
  5. iOS工程中的info.plist文件的完整研究
  6. .NET6之MiniAPI(八):日志
  7. Dapr牵手.NET学习笔记:跨物理机负载均衡服务调用
  8. java enum类探索
  9. java 情况浏览器缓存_JavaWeb禁止浏览器缓存当前Web页面的方法
  10. findstr()与strfind()的区别
  11. jquery的图片轮播 模板类型
  12. 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第1节 网络通信概述_3_网络通信协议分类...
  13. 外挂的艺术-单机游戏辅助工具-网络游戏外挂
  14. 微信里的 Office 365 —— Office 365 微助理打造移动办公新体验
  15. 92套AE抖音快闪模板(精品)
  16. GlusterFS元数据机制分析
  17. Dynamic ODT
  18. Implement strStr() -- LeetCode
  19. 在docker中出现的僵尸进程怎么处理
  20. 手把手教你学Python之Pandas(一文掌握数据分析与处理库-Pandas)

热门文章

  1. C语言求N阶乘的方法
  2. 在 Flutter 中创建响应式表单
  3. Winxp U盘无法复制磁盘写保护解决办法。
  4. Redis简介和优势
  5. 学校计算机怎么连接自己的热点,笔记本电脑怎么连接手机热点(手机热点开启及连接方法)...
  6. 解决XP系统桌面图标蓝底
  7. leet code 006:ZigZag Conversion
  8. net新的库相关的资源
  9. 结算系统功能详解-上篇
  10. smart3d4.4.5_在Android 5.0中使用Smart Lock,再也不必在家中解锁手机