android自定义进度条图片,Android零基础入门|自定义酷炫进度条
原标题: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零基础入门|自定义酷炫进度条相关推荐
- Android Studio新手–下载安装配置–零基础入门–基本使用–调试技能–构建项目基础–使用AS应对常规应用开发
转自:http://blog.csdn.net/yanbober/article/details/45306483 目标:Android Studio新手–>下载安装配置–>零基础入门–& ...
- python 二进制流转图片_Python零基础入门到精通-5.1节:Python程序的执行过程
教程引言: 系统地讲解计算机基础知识,Python的基础知识, 高级知识,web开发框架,爬虫开发,数据结构与算法,nginx, 系统架构.一步步地帮助你从入门到就业. 5.1.1 在命令行中执行Py ...
- C语言 va_start / va_end / va_arg 自定义 printf 函数 - C语言零基础入门教程
目录 一.前言 二.函数不定长参数简介 1.va_start 2.va_arg 3.va_end 三.win32 控制台版本 四.MFC 对话框版本 五.猜你喜欢 零基础 C/C++ 学习路线推荐 : ...
- Android通用流行框架大全,零基础入门学习android
| Picasso-transformations | 一个为Picasso提供多种图片变换的库 | | Glide-transformations | 一个为Glide提供多种图片变换的库 | | ...
- 如何导出Axure原型设计中的图片?零基础入门教程
Axure 是一款广为人知的原型设计工具,特别适用于新手产品经理或产品设计初学者.然而,如果用户想要在浏览器中预览 Axure 原型图,需要安装插件才能实现.而安装完 Axure RP Chrome ...
- android arrayadapter自定义,Android零基础入门|自定义ArrayAdapter
原标题:Android零基础入门|自定义ArrayAdapter ListView用起来还是比较简单的,也是Android应用程序中最重要的一个组件,但其他ListView可以随你所愿,能够完成很多想 ...
- android 表格控件点击事件,Android零基础入门|RecyclerView点击事件处理
原标题:Android零基础入门|RecyclerView点击事件处理 前面两期学习了RecyclerView的简单使用,并为其item添加了分割线.在实际运用中,无论是List还是Grid效果,基本 ...
- android生命周期方法,Android零基础入门|Activity状态和生命周期方法
原标题:Android零基础入门|Activity状态和生命周期方法 前面两期我们学习了Activity的创建和注册.以及启动和关闭,也学会了重写onCraete方法,这些知识在实际开发中远远不够,还 ...
- android 搜索框组件,Android零基础入门|搜索框组件SearchView
原标题:Android零基础入门|搜索框组件SearchView 一.SearchView概述 SearchView是搜索框组件,它可以让用户在文本框内输入文字,并允许通过监听器监控用户输入,当用户输 ...
- android 自动补全方法,Android零基础入门|自动完成文本框AutoCompleteTextView
原标题:Android零基础入门|自动完成文本框AutoCompleteTextView 上一期学习的Spinner的使用,掌握的怎么样?本期一起来学习AutoCompleteTextView的使用. ...
最新文章
- JS 时间戳转换成日期
- MediaWiki 1.19.2 发布 - 开源 Wiki 系统
- Python(88)_双下划线方法
- 使用apache的HttpGet\HttpPost获取返回内容编码问题
- iOS工程中的info.plist文件的完整研究
- .NET6之MiniAPI(八):日志
- Dapr牵手.NET学习笔记:跨物理机负载均衡服务调用
- java enum类探索
- java 情况浏览器缓存_JavaWeb禁止浏览器缓存当前Web页面的方法
- findstr()与strfind()的区别
- jquery的图片轮播 模板类型
- 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第1节 网络通信概述_3_网络通信协议分类...
- 外挂的艺术-单机游戏辅助工具-网络游戏外挂
- 微信里的 Office 365 —— Office 365 微助理打造移动办公新体验
- 92套AE抖音快闪模板(精品)
- GlusterFS元数据机制分析
- Dynamic ODT
- Implement strStr() -- LeetCode
- 在docker中出现的僵尸进程怎么处理
- 手把手教你学Python之Pandas(一文掌握数据分析与处理库-Pandas)