写一个自己定义进度颜色和圆形转动的ProgressBar(具体介绍)
先上图:
我们得自己定义ProgressBar的样式
<span style="white-space:pre"> </span><style name="self_define_ProgressBar" parent="@android:style/Widget.ProgressBar.Horizontal"> //继承了android横向的ProgressBar的样式 <item name="android:indeterminateOnly">false</item> <item name="android:progressDrawable">@drawable/self_define_progress</item> </style>
<?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android:id/background" > //定义的是背景色 <shape> <corners android:radius="5dip" /> <gradient android:angle="270" android:centerColor="#efefef" android:centerY="0.75" android:endColor="#a3a3a3" android:startColor="#c7c7c7" /> </shape> </item> <item android:id="@android:id/secondaryProgress"> //假设有2级进度,须要定义这一项,gradient定义的是渐变色,clip假设没有的话,进度条会充满整个Progessbar <clip> <shape> <corners android:radius="5dip" /> <gradient android:angle="270" android:centerColor="#99CC99" android:centerY="0.75" android:endColor="#99CC99" android:startColor="#99CC99" /> </shape> </clip> </item> <item android:id="@android:id/progress"> //这个是定义1级进度,假设1级进度比2级进度大且1级进度不透明。就能够覆盖掉2级进度 <clip> <shape> <corners android:radius="5dip" /> <gradient android:angle="270" android:centerColor="#4abbfd" android:centerY="0.75" android:endColor="#4abbfd" android:startColor="#4abbfd" /> </shape> </clip> </item> </layer-list>
在代码里这样使用:
private ProgressBar mProgressBar; private Task mTask = new Task(); private int mCount = 0; private Handler mHander = new MyHandler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); mProgressBar = (ProgressBar)findViewById(R.id.progress); Timer timer = new Timer(); timer.schedule(mTask, 1000, 1000); } private class MyHandler extends Handler{ @Override public void handleMessage(Message msg) { mCount += 10; mProgressBar.setProgress(mCount); super.handleMessage(msg); } } private class Task extends TimerTask{ @Override public void run() { mHander.sendEmptyMessage(10); } }
<?xml version="1.0" encoding="utf-8"?> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0" android:toDegrees="360"> <shape android:shape="ring"<span style="font-family:verdana, ms song, 宋体, Arial, 微软雅黑, Helvetica, sans-serif;color:#666666;"><span style="font-size: 14px; line-height: 18px;"> </span></span> android:innerRadiusRatio="3" android:thicknessRatio="8" android:useLevel="false"> <size android:width="37dip" android:height="37dip" /> <gradient android:type="sweep"//type为sweep为环形转圈 android:useLevel="false" android:startColor="#F7F7F7" android:centerColor="#F7F7F7" android:centerY="0.50" android:endColor="#B3B4B4" /> </shape> </rotate>
相关文章
- [置顶] 自己写一个简单通用的Makefile
- 终于用PYTHON作了一个实用于工作的脚本啦----通过邮件定时发送服务器空闲空间
- 34. 在排序数组中查找元素的第一个和最后一个位置(2)
- cs231n-2022-assignment1#Q2:训练一个支持向量机(SVM)
- 介绍一个使用 cl_abap_corresponding 进行两个内表不同名称字段赋值的快捷方法
- 一个介绍SAP git-enabled CTS的视频
- 一个计算SQL语句在HANA数据库执行花费的DB和CPU时间的统计工具
- 编程面试题:编写一个会造成数据库死锁的应用
- 介绍一个功能强大的 Visual Studio Code 扩展 - Rest Client,能部分替代 Postman
- 介绍一个修改 Visual Studio Code 侧边框颜色的扩展 Peacock
- 介绍一个能将任意关键字高亮实现的 Visual Studio Code 扩展
- Eclipse被卡死了或者失去响应了后分析根源的一个小技巧
- 介绍一个统计各个网站访问时长的Chrome扩展 - Rooster
- SAP CRM中间件下载equipment时遇到的一个错误
- 介绍一个好用的日期倒计时工具
- 介绍一个好用的能让网页变成黑色背景的护眼 Chrome 扩展应用 - Night Eye
- 【项目实战】并发编程之Java集合框架中的一个线程安全的队列实现 ——BlockingQueue入门介绍
- 【项目实战】一个MyBatis的增强工具 —— MyBatis-Plus的入门介绍
- WebRTC入门指南 —— 实现一个完整的点对点视频通话(信令服务器+客户端)
- 介绍一个又快又准的截图骚操作
- C++在一个有序数组中返回大于等与目标值的最小索引
- C++有序vector之每插入一个元素后重新排序
- 介绍一个python的新的web framework——karloop框架
- 一个简单的例子
- 一步一步写一个简单通用的makefile(三)
- LCC编译器的源程序分析(50) 分配一个寄存器
- 如何设计一个自动化测试框架?一文从4个点带你梳理一个正确的思路
- 语义分割(semantic segmentation) 常用神经网络介绍对比-FCN SegNet U-net DeconvNet,语义分割,简单来说就是给定一张图片,对图片中的每一个像素点进行分类;目标检测只有两类,目标和非目标,就是在一张图片中找到并用box标注出所有的目标.
- (一)如何利用C# Roslyn编译器写一个简单的代码提示/错误检查?
- 《凤凰项目-一个IT运维从传奇故事》总结