工作中遇到ProgressBar上加文字显示的问题,在网上查了下,发现好多都说可以用TextProgressBar来实现,但具体的使用方法却没有。后来在一个黑客网站发现了一个方法。觉得还不错,所以拿来用了,效果也还行。在此分享一下:
一般的ProgressBar都只是一个光光的条(这里说的都是水平进度条),虽然比不用进度条时给用户的感觉要好,但是如果在形像化的东西上面再加上点文字,将进度描述量化,就可以让用户更加明白当前进度是多少了。
有了需求,就可以开始实现了。
这里的原理就是继承一个ProgressBar,然后重写里面的onDraw()方法。
public class MyProgressBar extends ProgressBar {
String text;
Paint mPaint;
public MyProgressBar (Context context) {
super(context);
System.out.println("1");
initText();
}
public MyProgressBar (Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
System.out.println("2");
initText();
}
public MyProgressBar (Context context, AttributeSet attrs) {
super(context, attrs);
System.out.println("3");
initText();
}
@Override
public synchronized void setProgress(int progress) {
setText(progress);
super.setProgress(progress);
}
@Override
protected synchronized void onDraw(Canvas canvas) {
super.onDraw(canvas);
//this.setText();
Rect rect = new Rect();
this.mPaint.getTextBounds(this.text, 0, this.text.length(), rect);
int x = (getWidth() / 2) - rect.centerX();
int y = (getHeight() / 2) - rect.centerY();
canvas.drawText(this.text, x, y, this.mPaint);
}
//初始化,画笔
private void initText() {
this.mPaint = new Paint();
this.mPaint.setColor(Color.WHITE);
}
// private void setText() {
// setText(this.getProgress());
// }
//设置文字内容
private void setText(int progress) {
int i = (progress * 1) / this.getMax();
this.text = String.valueOf(i) + "%";
}
}
这样写后,在xml布局文件中使用时,可能会因为命名空间改变,下面属性无法用代码提示。一个简单的做法就是,先写一个正常的ProgressBar的标记,把属性写完后,再将ProgressBar替换为我们自定义的进度条的完整类名。还有使用自定义的控件后,android的布局预览是看不到效果的,运行到模拟器上就行了。
最后,使用方法就和普通的ProgressBar差不多。
本篇文章来源于 黑软基地-中国最大的黑客软件安全教程下载站!(手机资讯) 原文链接:http://www.hackvip.com/mobiwen/html/Mobile_250548.html
分享到:
相关推荐
在Android开发中,ProgressBar是系统提供的一个用于展示进度的组件,通常用于显示任务的加载进度。然而,系统默认的ProgressBar可能无法满足所有设计需求,因此开发者常常需要对其进行自定义,以实现更丰富的视觉...
在传统的Android进度条中,通常只显示一个简单的百分比或者进度值,而TextProgress组件扩展了这一功能,允许我们在进度条上嵌入文字,并且文字颜色会随着进度的增加而平滑过渡。 实现这样的功能可能需要自定义View...
本教程将深入探讨如何自定义一个显示百分比的ProgressBar,即“自定义百分比的progressbar”。 首先,我们需要理解Android的ProgressBar基本工作原理。ProgressBar是Android SDK中的一个视图组件,用于展示进度或...
本篇文章将深入探讨如何自定义ProgressBar以满足特定的设计需求,尤其是根据系统的风格进行定制,包括改变默认背景、添加百分比显示以及在圆形进度条中间显示加载进度。 首先,我们来看如何修改ProgressBar的默认...
在Android开发中,`ProgressBar`是一种常见的UI组件,用于显示任务或操作的完成进度。这种组件对于提升用户体验至关重要,尤其是在后台处理或等待服务器响应等场景下。本文将详细介绍不同类型的`ProgressBar`及其在...
ProgressBar是Android系统中的一种UI组件,它用于显示进度或加载状态。这个组件在各种场景下都非常常见,如数据加载、文件上传下载等。本篇文章将深入探讨ProgressBar的使用方法,包括其基本用法、样式定制以及...
在Android开发中,ProgressBar是用户界面中非常常见的一种组件,用于显示进度状态,例如加载数据、安装应用等操作。在很多场景下,开发者可能需要更直观地展示进度,即不仅有进度条,还希望在进度条旁边或者内部显示...
例如,在XML布局文件中,你可以使用`<ProgressBar>`标签并设定相关属性,如`android:progress`(determinate模式下的进度值),`android:max`(最大值),以及`android:indeterminateDuration`(不确定模式的动画...
在Android开发中,ProgressBar是用户界面中非常常见的一种组件,用于显示进度或加载状态。有时候,为了提升用户体验和界面美观性,我们可能需要对默认的ProgressBar进行自定义,特别是添加动画效果。本教程将深入...
在Android开发中,ProgressBar是一个非常重要的组件,它用于显示进度状态,可以是确定性的,比如下载文件时显示的百分比,也可以是不确定性的,比如在后台执行任务时展示的旋转指示器。本教程将深入讲解如何在...
"Android文字随下载进度渐变"这个主题就涉及到了自定义UI组件的实现,特别是如何让文字颜色随着进度条的进度变化而渐变,模拟音乐类应用中的歌词显示效果。这种效果能够吸引用户的注意力,并使界面更具动态感和交互...
为了在ProgressBar上显示文字,我们可以利用`android:progress`属性来动态更新进度,并在代码中设置TextView或者直接在ProgressBar上绘制文字。如果选择在ProgressBar上绘制文字,你需要在`custom_progress_bar.xml`...
在Android应用开发中,ProgressBar是用户界面中常见的一种组件,用于指示某个操作的进度或等待状态。本Demo源码着重展示了如何在ProgressBar上显示文字,为用户提供更直观的反馈信息。接下来,我们将深入探讨这个...
在安卓开发中,ProgressBar是用户界面(UI)中不可或缺的元素,它用于向用户展示某个操作的进度,比如数据加载、文件下载等。这个压缩包文件"安卓Android源码——(ProgressBar进度条).rar"很可能包含了一些关于如何...
在Android开发中,`ProgressBar`是一个非常常见的组件,它用于展示任务执行的进度,比如文件下载、上传或者网络请求等。本教程将深入探讨如何利用`Handler`消息机制来实现`ProgressBar`的动态更新,展示进度条中进度...
在Android开发中,自定义控件是提升应用用户体验和界面美观度的重要手段。本文将详细介绍如何实现三种常用的方法来创建自定义的圆形进度条(ProgressBar)。这些方法包括使用Shape Drawable、自定义View以及使用第三...
在Android开发中,ProgressBar是一个非常常见的组件,它用于表示一个操作的进度,通常在等待加载、上传或下载等异步任务时使用。本Demo源码着重展示了如何在ProgressBar上添加文字,以提供更直观的反馈信息给用户。...
在Android开发中,`ProgressBar`是一个非常常见的组件,用于显示进度状态,比如加载、缓冲或者完成度等。在本项目中,我们关注的是一个特定的`ProgressBar`样式——半圆弧形进度条,并且它的百分比字符串会跟随进度...
在Windows Forms或WPF应用程序中,`ProgressBar`控件是一个常用元素,用于向用户展示某个操作的进度。在这个场景中,我们需要使用线程技术来控制`ProgressBar`在10秒内逐渐填充,以模拟一个耗时操作的进度。下面将...
ProgressBar是Android系统中一个非常重要的组件,用于显示进度或加载状态。在Android应用开发中,无论是简单的文件下载、网络请求,还是复杂的计算过程,我们都需要用到ProgressBar来提供用户友好的界面反馈。这个...