Android progressBar 自定义

安卓Seekbar自定义样式的开发 安卓自定义seekbar 阅读详情

在drawable文件夹中建立如下旋转动画文件

<?xml version="1.0" encoding="utf-8"?>
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"    
    android:drawable="@drawable/loading1"    
    android:pivotX="50%"    
    android:pivotY="50%" />  

其中loading1即为您想用的图片

二 在布局文件中设置progressbar

 <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
         android:indeterminateDrawable="@drawable/progressbg"
         android:indeterminateOnly="true"
         android:indeterminateBehavior="repeat"
    
       />


android 自定义水平的ProgressBar

先看效果图:



代码:

新建drawable

新建一个drawable/progressbarclor

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@android:id/progress"
        android:drawable="@drawable/common_button_red"/>
</layer-list>


新建drawable/progresssape

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >


    <corners android:radius="10dp" />


    <solid android:color="#ffffff" />


</shape>

布局:

<ProgressBar
                android:background="@drawable/progresssape"
                android:id="@+id/pb"
                android:layout_width="wrap_content"
                android:layout_height="10dp"
                android:layout_marginLeft="8dp"
                android:layout_marginRight="8dp"
                android:layout_weight="1"
                android:indeterminateOnly="false"
                android:max="100"
                android:progressDrawable="@drawable/progressbarclor" />



http://winwyf.blog.51cto.com/4561999/857867

Android原生控件只有横向进度条一种,而且没法变换样式,比如原生rom的样子

很丑是吧,当伟大的产品设计要求更换前背景,甚至纵向,甚至圆弧状的,咋办,比如

ok,我们开始吧:

 

一)变换前背景

先来看看progressbar的属性:

 
  1. <ProgressBar 
  2.             android:id="@+id/progressBar" 
  3.             style="?android:attr/progressBarStyleHorizontal" 
  4.             android:layout_width="match_parent" 
  5.             android:layout_height="wrap_content" 
  6.             android:layout_margin="5dip" 
  7.             android:layout_toRightOf="@+id/progressBarV" 
  8.             android:indeterminate="false" 
  9.             android:padding="2dip" 
  10.             android:progress="50" /> 

根据style="?android:attr/progressBarStyleHorizontal",我们找到源码中的style.xml

 
  1. <style name="Widget.ProgressBar.Horizontal"> 
  2.         <item name="android:indeterminateOnly">false</item> 
  3.         <item name="android:progressDrawable">@android:drawable/progress_horizontal</item> 
  4.         <item name="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item> 
  5.         <item name="android:minHeight">20dip</item> 
  6.         <item name="android:maxHeight">20dip</item> 
  7.     </style> 

看到

<item name="android:progressDrawable">@android:drawable/progress_horizontal</item> 

木有,继续发掘源码,找到drawable下面的progress_horizontal.xml,这就是我们今天的主角了:


 
  1. <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
  2.      
  3.     <item android:id="@android:id/background"> 
  4.         <shape> 
  5.             <corners android:radius="5dip" /> 
  6.             <gradient 
  7.                     android:startColor="#ff9d9e9d" 
  8.                     android:centerColor="#ff5a5d5a" 
  9.                     android:centerY="0.75" 
  10.                     android:endColor="#ff747674" 
  11.                     android:angle="270" 
  12.             /> 
  13.         </shape> 
  14.     </item> 
  15.      
  16.     <item android:id="@android:id/secondaryProgress"> 
  17.         <clip> 
  18.             <shape> 
  19.                 <corners android:radius="5dip" /> 
  20.                 <gradient 
  21.                         android:startColor="#80ffd300" 
  22.                         android:centerColor="#80ffb600" 
  23.                         android:centerY="0.75" 
  24.                         android:endColor="#a0ffcb00" 
  25.                         android:angle="270" 
  26.                 /> 
  27.             </shape> 
  28.         </clip> 
  29.     </item> 
  30.      
  31.     <item android:id="@android:id/progress"> 
  32.         <clip> 
  33.             <shape> 
  34.                 <corners android:radius="5dip" /> 
  35.                 <gradient 
  36.                         android:startColor="#ffffd300" 
  37.                         android:centerColor="#ffffb600" 
  38.                         android:centerY="0.75" 
  39.                         android:endColor="#ffffcb00" 
  40.                         android:angle="270" 
  41.                 /> 
  42.             </shape> 
  43.         </clip> 
  44.     </item> 
  45.      
  46. </layer-list> 

 看到android:id="@android:id/progress"木有,看到android:id="@android:id/secondaryProgress"木有

把这个文件复制到自己工程下的drawable,就可以随心所欲的修改shape的属性,渐变,圆角等等

那么怎么放一个图片进去呢,ok,新建progress_horizontal1.xml:

 
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
  3.      
  4.     <item android:id="@android:id/progress" android:drawable="@drawable/progressbar" /> 
  5.      
  6. </layer-list> 

在android:drawable中指定你处理好的图片

然后回到布局中

 
  1. <ProgressBar 
  2.             android:id="@+id/progressBar1" 
  3.             android:layout_width="match_parent" 
  4.             android:layout_height="wrap_content" 
  5.             android:layout_below="@+id/progressBar" 
  6.             android:layout_margin="5dip" 
  7.             android:layout_toRightOf="@+id/progressBarV" 
  8.             android:background="@drawable/progress_bg" 
  9.             android:indeterminate="false" 
  10.             android:indeterminateOnly="false" 
  11.             android:maxHeight="20dip" 
  12.             android:minHeight="20dip" 
  13.             android:padding="2dip" 
  14.             android:progress="50" 
  15.             android:progressDrawable="@drawable/progress_horizontal1" /> 

android:background="@drawable/progress_bg"指定背景

android:progressDrawable="@drawable/progress_horizontal1"前景使用上面的progress_horizontal1

ok,搞定

 注意看,四角还是有圆倒角的,貌似是系统自己加上去的,总之我的图片里面是没有做这个倒角处理的

 

二)纵向进度条

还是得从源码入手,看回progress_horizontal.xml

 
  1. <item android:id="@android:id/progress"> 
  2.         <clip> 
  3.             <shape> 
  4.                 <corners android:radius="5dip" /> 
  5.                 <gradient 
  6.                         android:startColor="#ffffd300" 
  7.                         android:centerColor="#ffffb600" 
  8.                         android:centerY="0.75" 
  9.                         android:endColor="#ffffcb00" 
  10.                         android:angle="270" 
  11.                 /> 
  12.             </shape> 
  13.         </clip> 
  14.     </item> 

为什么shape外面要包一层clip呢,官方文档解释是clipdrawable是可以自我复制的,来看看定义

 
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <clip 
  3.     xmlns:android="http://schemas.android.com/apk/res/android" 
  4.     android:drawable="@drawable/drawable_resource" 
  5.     android:clipOrientation=["horizontal" | "vertical"] 
  6.     android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" | 
  7.                      "fill_vertical" | "center_horizontal" | "fill_horizontal" | 
  8.                      "center" | "fill" | "clip_vertical" | "clip_horizontal"] /> 

android:clipOrientation有两个属性,默认为horizontal

android:gravity有两个属性,默认为left

那我们试试改成vertical和bottom会有什么效果,新建一个progress_vertical.xml,把源码progress_horizontal.xml的内容复制过来,这里去掉了secondaryProgress,修改了clip,shape的渐变中心centerY改为centerX

 
  1. <item android:id="@android:id/progress"> 
  2.         <clip 
  3.             android:clipOrientation="vertical" 
  4.             android:gravity = "bottom"> 
  5.             <shape> 
  6.                 <corners android:radius="5dip" /> 
  7.                 <gradient 
  8.                         android:startColor="#ffffd300" 
  9.                         android:centerColor="#ffffb600" 
  10.                         android:centerX="0.75" 
  11.                         android:endColor="#ffffcb00" 
  12.                         android:angle="90" 
  13.                 /> 
  14.             </shape> 
  15.         </clip> 
  16.     </item> 

布局中android:progressDrawable="@drawable/progress_vertical"

ok,搞定,就是这么简单:

 

 

三)弧形bar

这个也许算不上是进度条,用的也不多,最多也就仪表盘用用,不然谁会把进度条整成圆弧的呢。好吧这个可不是改改源码就能搞定的,看代码

 
  1. public class Arcs extends View {   
  2.     private Paint mArcPaint;   
  3.     private Paint mArcBGPaint;   
  4.    
  5.     private RectF mOval;   
  6.     private float mSweep = 0;   
  7.     private int mSpeedMax = 200; 
  8.     private int mThreshold = 100; 
  9.     private int mIncSpeedValue = 0; 
  10.     private int mCurrentSpeedValue = 0;  
  11.     private float mCenterX;   
  12.     private float mCenterY;   
  13.     private float mSpeedArcWidth;   
  14.   
  15.     private final float SPEED_VALUE_INC = 2;  
  16.   
  17.     ..........  
  18.   
  19. }  

首先是一堆成员变量,两个Paint用来画圆弧一个前景一个背景,一个RectF圆弧就画在上面,然后是一些控制参数比如sweep圆弧扫过的角度,xy坐标等等

 

 
  1. mArcPaint = new Paint(Paint.ANTI_ALIAS_FLAG); 
  2.         mArcPaint.setStyle(Paint.Style.STROKE); 
  3.         mArcPaint.setStrokeWidth(mSpeedArcWidth); 
  4. //        mPaint.setStrokeCap(Paint.Cap.ROUND); 
  5.         mArcPaint.setColor(0xff81ccd6); 
  6.         BlurMaskFilter mBlur = new BlurMaskFilter(8, BlurMaskFilter.Blur.INNER); 
  7.         mArcPaint.setMaskFilter(mBlur); 
  8.          
  9.         mArcBGPaint = new Paint(Paint.ANTI_ALIAS_FLAG); 
  10.         mArcBGPaint.setStyle(Paint.Style.STROKE); 
  11.         mArcBGPaint.setStrokeWidth(mSpeedArcWidth+8); 
  12.         mArcBGPaint.setColor(0xff171717); 
  13.          
  14.         BlurMaskFilter mBGBlur = new BlurMaskFilter(8, BlurMaskFilter.Blur.INNER); 
  15.       mArcBGPaint.setMaskFilter(mBGBlur); 

设置两个画笔,颜色,宽度,样式等等,BlurMaskFilter笔是边缘模糊效果,有几种,可以自己尝试

 

 
  1. @Override 
  2. protected void onSizeChanged(int w, int h, int ow, int oh) { 
  3.         super.onSizeChanged(w, h, ow, oh); 
  4.         Log.i("onSizeChanged w", w+""); 
  5.         Log.i("onSizeChanged h", h+""); 
  6.         mCenterX = w * 0.5f;  // remember the center of the screen 
  7.         mCenterY = h - mSpeedArcWidth; 
  8.         mOval = new RectF(mCenterX - mCenterY, mSpeedArcWidth, mCenterX + mCenterY, mCenterY * 2); 
  9.     } 

重写父类View的onSizeChanged,为的是自己根据布局中的大小做居中处理

 

 
  1. @Override   
  2.     protected void onDraw(Canvas canvas) {  
  3.         drawSpeed(canvas);  
  4.         calcSpeed();  
  5.     }  
  6.   
  7. private void drawSpeed(Canvas canvas) {  
  8.         canvas.drawArc(mOval, 179, 181, false, mArcBGPaint);  
  9.   
  10.         mSweep = (float) mIncSpeedValue / mSpeedMax * 180;  
  11.         if (mIncSpeedValue > mThreshold) {  
  12.             mArcPaint.setColor(0xFFFF0000);  
  13.         }  
  14.         else {  
  15.             mArcPaint.setColor(0xFF00B0F0);  
  16.         }  
  17.           
  18.         canvas.drawArc(mOval, 180, mSweep, false, mArcPaint);          
  19.     }  
  20.   
  21. private void calcSpeed() {  
  22.         if (mIncSpeedValue < mCurrentSpeedValue) {  
  23.             mIncSpeedValue += SPEED_VALUE_INC;  
  24.             if (mIncSpeedValue > mCurrentSpeedValue) {  
  25.                 mIncSpeedValue = mCurrentSpeedValue;  
  26.             }  
  27.             invalidate();  
  28.         }  
  29.         else if (mIncSpeedValue > mCurrentSpeedValue) {  
  30.             mIncSpeedValue -= SPEED_VALUE_INC;  
  31.             if (mIncSpeedValue < mCurrentSpeedValue) {  
  32.                 mIncSpeedValue = mCurrentSpeedValue;  
  33.             }  
  34.             invalidate();  
  35.         }  
  36.     }  

重写onDraw以便重绘canvas

drawSpeed里面

通过计算mSweep = (float) mIncSpeedValue / mSpeedMax * 180;

然后canvas.drawArc(mOval, 180, mSweep, false, mArcPaint);

会根据mSweep的变化,画出相应长度的弧度来

根据与阈值的对比,还可以设定不同的 颜色:

 

if (mIncSpeedValue > mThreshold) {

mArcPaint.setColor(0xFFFF0000);

}

else {

mArcPaint.setColor(0xFF00B0F0);

}

 

 

calcSpeed通过一个步进来控制增量或减量,以使弧度自然过渡,减少跳跃

ok,大功告成

 


Android 自定义ProgressBar横向圆角 ProgressBar大家可能项目中都会用到,但是大部分都是根据UI给的符合项目主题的自定义形式的; 下面就是我们项目中一个显示学习进度的横向ProgressBar; 可以看到四个角都是圆角的,本人首先想到的是自定义,但是会发现四个角总是不能够实现,要不左侧会被切成直角,要不进度内侧会被切成直角,也是从网上查找分析,最终实现如下: 结合网上大神的示意,在此作个笔记,方便之后遇到直接拿来用,节省时间. 借鉴ProgressBar 进度条的进度两端是圆角的方法 但是根据自定义的shape 或者是 阅读详情

相关推荐

Android 自定义图片加载进度条

因为项目需要,所以自己写了一个自定义的加载进度条,还有一个圆形的进度条,可以显示当前加载的进度

Android ProgressBar自定义图片进度,自定义渐变色进度条

↳    android.view.View 3        ↳    android.widget.ProgressBar 4 直接子类 5 AbsSeekBar 6 间接子类

strliu的专栏 2689

Android自定义双向进度条的实现代码

本篇文章主要介绍了Android自定义双向进度条的实现代码,非常具有实用的价值,有兴趣的同学一起来了解一下

android 自定义长条进度条_Android自定义控件:进度条的四种实现方式

前三种实现方式代码出自:http://stormzhang.com/openandroid/2013/11/15/android-custom-loading/最近一直在学习自定义控件,搜了许多大牛们Blog里分享的小教程,也上GitHub找了一些类似的控件进行学习。发现读起来都不太好懂,就想写这么一篇东西作为学习笔记吧。一、控件介绍:进度条在App中非常常见,例如下载进度、加载图片、打开文章、打...

weixin_34474896的博客 1148

OpenHarmony实战开发-如何实现文件分布式同步编辑

在分布式文件场景中,分布式设备管理包含了分布式设备搜索、分布式设备列表弹窗、远端设备拉起三部分。首先在分布式组网内搜索设备,然后把设备展示到分布式设备列表弹窗中,最后根据用户的选择拉起远端设备。两台设备组网的分布式场景是工作中常常需要的。这样的分布式场景有助于加快工作效率,减少工作中的冗余,本例将为大家介绍如何实现上述功能。​ (2)订阅分布式数据变化:通过this.distributedObject.on(‘status’, this.statusCallback)监听分布式数据对象的变更。

2401_82546228的博客 754

新手必看|HDevelop核心算子快速上手,为C#移植打基础

在上一篇文章中,我们完成了C#+HALCON的开发环境搭建。但在实际工业开发中,绝不会直接在C#中编写视觉算法HDevelop可视化调试算法 → 验证效果 → 导出C#代码 → 集成到上位机。HDevelop是HALCON专属的算法调试工具,支持实时预览图像、参数动态调节、零编译运行,是新手入门和工业算法调试的核心工具。本文聚焦工业场景高频使用的核心算子,从基础操作到实战案例,手把手教你使用HDevelop;同时重点讲解算法导出C#的规范,让你调试完成的算法,能无缝移植到WinForm上位机中。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 786

Android那些事儿之自定义进度条

Android原生控件只有横向进度条一种,而且没法变换样式,比如原生rom的样子 很丑是吧,当伟大的产品设计要求更换前背景,甚至纵向,甚至圆弧状的,咋办,比如 ok,我们开始吧: 一)变换前背景 先来看看progressbar的属性: <ProgressBarandroid:id="@+id/progressBar"...

weixin_33796205的博客 508

字节跳动已上岸测试工程师的面试经验

这个时候发面经已经有点晚了,所以现在打算让这篇面经主要面向即将秋招的童鞋,当然现在还在春招的童鞋也可以看哈,我和大家一起聊聊关于测试的二三事。   一、测试工程师的工作是什么?   测试工程师简单点说就是找bug,然后反馈给开发人员,不要小看这个工作。   首先很明显的bug开发人员有时候自己就能找到,测试人员要有比开发人员更加全面的想法才能找到深层次的问题点,   其次,要端正一个态度就是测试人员不是一个电脑小白,相反国外顶级的测试开发工程师同时也是顶级的开发工程师甚至更厉害,所以作为一个测试工程师一定要

m0_60745607的博客 2934

Android之自定义ProgressBar

本文简单介绍下Android之自定义ProgressBar。

冰点蓝欣的专栏 2244

Qlib上手学习记录

Qlib 是一个面向人工智能的量化投资平台,其目标是通过在量化投资中运用AI技术来发掘潜力、赋能研究并创造价值,从探索投资策略到实现产品化部署。该平台支持多种机器学习建模范式,包括有监督学习、市场动态建模以及强化学习等。真的是走了很多弯路step 1. 使用 ananconda 建立环境,要主要必须是 python 3.8失败的下了以后 进入 glib folder 后执行是会报错的,不管你还什么source 都一样,整了很久使用前最好看下这个。

chenchihwen的专栏 3100

jlink v9刷固件修改序列号来修复弹窗

jlink v9弹窗警告修复j

weixin_40500627的博客 9372

Android的ProgressBar自定义入门

Android ProgressBar 本文主要围绕android.widget.ProgressBar,对样式自定义的部分细节进行描述。 XML属性 首先,来了解一下ProgressBar到底在xml配置中到底有何属性,大家可以看看Android官网对ProgressBar的介绍 http://developer.android.com/reference/android/wid

Zenip的专栏 9837

基于加速科技ST2500的SN74HC00N芯片测试计划

实际上随着工艺的进步,器件内部和引脚间的绝缘氧化膜越来越薄,导致漏电流发生的概率更大,另外制造过程中的工艺缺陷导致的桥接,异物或封装过程中造成的芯片划伤、引裂,都会造成IC的漏电流偏大,有部分产品可能会表现出漏电流偏大,但功能正常,此类产品具有潜在的可靠性问题,漏电流测试的目的就是把具有此类缺陷的产品筛选出来,避免其流到最终产品造成更大的损失。漏电流的测试方法相对简单,就是根据产品手册或测试规范对被测引脚施加额定的电压,然后测量其输入或流出的电流是否符合相应的设计规范。74HC00引脚功能如表所示。

weixin_68288412的博客 1440

Android 自定义Progressbar,任何图片都能当成progressbar转动起来

今天群里边有人问怎么自定义Android holo主题下的Progressbar; 我想到之前做过自定义Progressbar,通过自己写动画和Style可以用任何图片当作progressbar来转动; 分享下我是如何做的,其实很简单的三步就能完成: 1.找到一张图片,写一个动画: <animated-rotate xmlns:android="http://schemas.android

金禅的专栏 8205

手把手完整实现STM32+LORA组网网关+机智云平台+手机APP应用———第一节- 一主多从的LORA本地组网通信-实现从机采集温湿度与主机显示数据

本教程为《手把手实现STM32+LORA组网网关+机智云平台+手机APP应用》第一节。实现一个主机,两个从机的LORA组网通信。两个从机采集温湿度数据并通过LORA传输数据到主机,然后主机接收到两个从机数据后进行数据显示,本节通过PC串口助手显示两个从机的数据。 下一节将其主机接收的数据通过WIFI网关(ESP8266)传到机智云平台与手机APP。 本文讲解一主多从的LORA本地组网通信,串口助手进行数据展示。使用硬件主要包括:STM32F103C8T6最小系统板(3个)、正点原子LORA模块ATK-L

嵌入式阿齐Archie 1万+

STM32外部中断EXTI原理与飞控实时应用实战

外部中断(EXTI)是嵌入式系统中实现事件驱动和实时响应的核心机制,其本质是将外部电平变化转化为可调度的CPU中断事件。基于ARM Cortex-M NVIC架构,EXTI通过GPIO-EXTI-NVIC三级硬件通路实现低延迟信号捕获,具备边沿触发、优先级管理与挂起控制等关键能力。在四轴飞控、工业传感器、人机交互等对毫秒级响应有强需求的场景中,EXTI显著优于轮询方式,兼顾实时性与CPU资源效率。实际开发需严格遵循SYSCFG映射→EXTI配置→NVIC使能的时序逻辑,并规避常见陷阱如中断号误配、伪触发、低

weixin_36382073的博客 66

android自定义progressbar样式,Android自定义ProgressBar,仿IOS ASProgressPopUpView

progress = 200.pngprogress = 500.png之前在做一个app中,发现IOS有一个ASProgressPopUpView的第三方控件满足需求的效果。可能因为我人比较懒,所以也没去详细地找出android是否有具体的一个第三方框架可以做到这样的一个效果。我自己具体分析了一下,发现做一个这样的自定义View好像并不难,也算是本人第一个小小的自定义View。在一个师兄提醒和a...

weixin_42367557的博客 955

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

android ProgressBar自定义

自定义Android ProgressBar 在Android开发中,ProgressBar是一种常见的控件,用于展示任务的进度。Android提供了默认的ProgressBar样式,但有时候我们需要根据项目需求自定义ProgressBar的外观。本文将介绍如何自定义Android ProgressBar,并提供代码示例。...

weixin_42160398的博客 351

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

android 自定义横向progressbar,Android自定义横向的ProgressBar

废话少说,先看一下效果吧,颜色有点丑,不过基本功能都有提到,实际使用中修改一下就ok。 其实很简单,上代码!在res下创建drawable文件夹,新建文件drawable/progressbar_color.xmlandroid:angle="90.0"android:centerColor="#ac6079"android:centerY="0.45"android:endColor="#6c2...

weixin_28937395的博客 451

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

android 如何自定义ProgressBar

以下博文,阅读时,建议参考android官方文档  http://developer.android.com/guide/topics/resources/drawable-resource.html#Clip 1. 在res/values/colors.xml中定义ProgressBar要用的图片颜色          #00000000 #ffff

jonemill的专栏 618

Android 自定义谷歌风格ProgressBar

speed);.getFloat(speed);false);break;break;break;default:// colors= 0) {= null) {if (colors!else= 0) {if (colors!0));0));.getFloat(0));false));false));false)) {break;break;break;break;

2501_90499523的博客 885

android 简单自定义progressBar

android系统提供了少量的progressBar样式,但是样式有限,而且不够美观。所以这就需要我们自已定义progressBar的风格。提高应用UI的美观。这里简单的介绍自定义progressBar的两种方式。

yzw9925的专栏 584

安卓实习生之——自定义ProgressBar

现有需求,根据服务端获取到的数据,进行百分比展示,如下图所示: 若要使用自定义View来实现,有几个步骤,第一步,创建资源文件attrs.xml:首先添加 &amp;amp;amp;amp;amp;lt;resources xmlns:tools=&amp;amp;amp;amp;quot;http://schemas.android.com/tools&amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;gt; &amp

菜鸟程序员的博客 540

【android自定义控件】ProgressBar自定义

ProgressBar分为垂直和水平 经常在数据加载过程中,为了让用户感觉友好,弹出一个提示圆形的加载框 水平的经常在下载应用的时候用到,还伴随着下载进度。 ProgressBar的样式有四种: android:progressBarStyle:默认进度条样式,不确定模式 android:progressBarStyleHorizontal

猫的阁楼 1612
上一篇: Android Tab页面手势滑动切换以及动画效果
下一篇: Android自定义对话框(Dialog)位置,大小
fancylovejava
博客等级 码龄16年 1052粉丝 184原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值