`

绘制最简单的进度条

 
阅读更多
在许多项目中会用到进度条,大多数时候都需要根据客户的需求都不会采用系统默认的进度条。
比如进入一个软件时碰到的动画界面,这个可以用animation实现:
<?xml version="1.0" encoding="utf-8"?>
<animation-list
xmlns:android="http://schemas.android.com/apk/res/android"
androidneshot="false">
<item android:drawable="@drawable/loading01" android:duration="200"/>
<item android:drawable="@drawable/loading02" android:duration="200"/>
<item android:drawable="@drawable/loading03" android:duration="200"/>
</animation-list>
用一帧帧的图片拼成。
  但是如果这个进度条需要根据加载的实际情况而进行改变时,animation明显不实用了。
最简单的方式:
       //barAboveBitmap 是要绘制的进度条,可以用一张进度条图片;progress 为具体进度 progressBg为ImageView,可以
     //为它设置一个比进度条图片稍微大点的背景,这样两者配合起来就像一个完整的进度条了
  //也可以结合RelativeLayout相互组件之间可以覆盖的特性给进度条加个显示进度的数字
       int width = barAboveBitmap.getWidth();
       int height = barAboveBitmap.getHeight();
       Bitmap barBitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);
        // 画进度条
        Canvas canvas = new Canvas(barBitmap);
        Path path = new Path();
        path.moveTo(0, 0);
        path.lineTo(width * progress / 100, 0);
        path.lineTo(width * progress /  100, height);
        path.lineTo(0, height);
        canvas.clipPath(path);
        canvas.drawBitmap(barAboveBitmap, 0, 0, barPaint);
        progressBg.setImageBitmap(barBitmap);
分享到:
评论

相关推荐

    手动绘制进度条易语言源码

    本资源提供的是一段易语言源码,用于手动绘制进度条,这对于理解图形用户界面(GUI)的自定义绘制以及窗口绘图原理非常有帮助。 首先,我们要了解易语言的基本结构。易语言是一种面向对象的编程语言,它的语法简洁...

    Qt Qml圆形进度条动画

    `Rectangle`是最基础的图形元素,可以用来绘制各种形状,包括圆形。`Path`和`PathView`允许我们定义和控制路径上的动画。`ProgressIndicator`是Qt QML中的一个组件,用于显示进度条,但默认情况下它通常是线性的。...

    android实现的自定义圆形进度条

    在这里,我们可以使用`Canvas`对象进行画布操作,比如绘制圆形背景和进度条。 2. **绘制基础元素**: 在`onDraw()`方法中,我们使用`Canvas`的`drawCircle()`方法绘制圆形背景。可以通过设置`Paint`对象的颜色、...

    简单环形条格进度条

    在本文中,我们将深入探讨如何在Qt环境下创建一个简单的环形条格进度条。Qt是一个跨平台的应用程序开发框架,广泛用于构建桌面、移动和嵌入式应用。它提供了丰富的图形用户界面(GUI)组件,其中包括传统的线性...

    winform竖向进度条

    - 重写`OnPaint`方法,以便绘制竖向的进度条。在`OnPaint`中,你需要计算新的宽度和高度,以及进度条的填充区域。 - 你还需要考虑调整`Minimum`和`Maximum`属性的含义,因为它们现在代表的是竖直方向上的值。 - ...

    VB进度条(转载)

    在Visual Basic中实现进度条有多种方式,从简单的内置组件到复杂的自定义绘制,开发者可以根据项目需求选择最合适的方案。无论是追求功能的实用性还是视觉的美观性,上述方法都能提供良好的起点和灵感。掌握这些技巧...

    易语言画板做进度条

    易语言是一种专为中国人设计的编程语言,它的目标是让编程变得简单、直观。在本教程中,我们将探讨如何利用易语言的画板组件来创建一个进度条效果。进度条通常用于显示程序执行过程中的进度,它能提供用户友好的界面...

    jsp 8种进度条

    每种进度条都有其特点和适用场景,开发者可以根据项目的实际需求选择最适合的方法。无论是使用纯JavaScript还是结合其他前端技术,关键在于理解和掌握这些技术的基本原理及其在实际应用中的灵活运用。

    最炫の多类型-环形进度条

    开发者可能会提供一个简单的示例来演示如何在项目中引入和使用环形进度条,帮助新手快速上手。 9. **自定义属性**:除了基本功能,高级的环形进度条还可能支持更多自定义属性,比如环的宽度、圆环边角的圆润程度、...

    ios开发各种类型进度条

    在iOS开发中,进度条是...长条形进度条简单直观,波浪线进度条富有动感,圆柱形进度条适合360度进程,而饼形进度条则提供了一种直观的百分比表示。通过深入学习和实践,开发者可以创造出更多创新和美观的进度条效果。

    canvas 圆形进度条效果.zip

    本项目提供的“canvas 圆形进度条效果”是一个利用 JavaScript 和 HTML5 Canvas 绘制的简单且实用的动画效果,用于展示圆形进度条,通常适用于加载指示器或表现数据百分比。然而,需要注意的是,由于它基于 ...

    MFC 进度条美化 C++

    通过覆盖OnPaint()函数,开发者可以自定义绘制逻辑,使用CDC对象进行图形绘制,如设置不同颜色的矩形表示进度条的填充部分和空闲部分。 4. **GDI+或Direct2D**:为了实现更复杂的绘图效果,开发者可能会利用GDI+或...

    好看的VB进度条

    1. 条形进度条:这是最常见的进度条形状,通过改变ProgressBar控件的Width和Height属性,可以调整条形的长度和高度。 2. 圆环形进度条:如果想要实现圆环形进度条,VB本身不直接提供此控件,但可以通过自定义控件...

    自定义进度条

    横向进度条是最常见的一种形式,通常用于表示某个任务或过程的完成度。实现一个自定义的横向进度条,我们可以使用诸如HTML、CSS和JavaScript这样的前端技术。在HTML中,可以创建一个基础的`&lt;progress&gt;`元素,然后...

    渐变进度条-ios

    最后,使用`CGContextDrawLinearGradient`沿着进度条宽度方向绘制渐变色。 3. **更新进度** 当进度条的进度值改变时,需要调用`setNeedsDisplay`方法来触发重绘。在`drawRect:`方法中,根据进度值计算实际应显示的...

    实现圆环进度条的三种方式 div svg canvas

    在网页设计和开发中,有时候我们需要展示数据的进度或者完成度,这时圆环进度条就显得非常实用。本文将详细探讨使用HTML、CSS以及JavaScript的三种不同方式来实现圆环进度条,包括基于div、svg和canvas的方法。 一...

    swift-一个简单的下载进度条可自定义线宽颜色等等

    本教程将围绕"swift-一个简单的下载进度条可自定义线宽颜色等等"这一主题,深入讲解如何在Swift中实现这样一个功能。 首先,我们需要了解Swift中的进度条视图(UIProgressView)。这是苹果提供的原生组件,可以用来...

    自定义漂亮的圆形进度条

    最后,为了便于测试和展示,可以创建一个简单的示例应用,将自定义进度条添加到布局中,并通过按钮或者其他交互方式动态改变进度。这有助于验证组件的正确性和可用性。 总结起来,创建一个自定义漂亮的圆形进度条...

    js+HTML5 canvas 实现简单的加载条(进度条)功能示例.docx

    在本文中,我们将深入探讨如何使用JavaScript和HTML5的Canvas API来创建一个简单的加载条(进度条)功能。Canvas是一个强大的图形绘制工具,它允许开发者在网页上动态地绘制2D图形。以下是如何利用这些技术实现加载...

Global site tag (gtag.js) - Google Analytics