Android零基础入门|自定义酷炫进度条

Android (37) 2024-02-22 11:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说Android零基础入门|自定义酷炫进度条,希望能够帮助你!!!。

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

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

Android零基础入门|自定义酷炫进度条_https://bianchenghao6.com/blog_Android_第1张

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

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

Android零基础入门|自定义酷炫进度条_https://bianchenghao6.com/blog_Android_第2张

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

Android零基础入门|自定义酷炫进度条_https://bianchenghao6.com/blog_Android_第3张

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

Android零基础入门|自定义酷炫进度条_https://bianchenghao6.com/blog_Android_第4张

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

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

由于此处我们还没有学习Drawable资源,所以这里先给大家介绍一下概念,关于具体如何操作可以等学了Drawable资源后,再回过头来自定义ProgressBar。

二、使用动画来代替进度条

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

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

Android零基础入门|自定义酷炫进度条_https://bianchenghao6.com/blog_Android_第5张

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

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

Android零基础入门|自定义酷炫进度条_https://bianchenghao6.com/blog_Android_第6张

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

Android零基础入门|自定义酷炫进度条_https://bianchenghao6.com/blog_Android_第7张

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

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

Android零基础入门|自定义酷炫进度条_https://bianchenghao6.com/blog_Android_第8张

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

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

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

Android零基础入门|自定义酷炫进度条_https://bianchenghao6.com/blog_Android_第9张

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

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

Android零基础入门|自定义酷炫进度条_https://bianchenghao6.com/blog_Android_第10张

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

Android零基础入门|自定义酷炫进度条_https://bianchenghao6.com/blog_Android_第11张

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


今天就先到这里,如果有问题欢迎留言一起探讨,共同成长!

此文章版权为今日头条号分享达人就是我——鑫鱻所有,若需转载请联系作者授权,特此声明!

往期总结分享:

第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

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

发表回复