工作中遇到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
分享到:
相关推荐
自定义view
条形ProgressBar 半圆弧形进度 百分比的字符串跟随进度
支持百分比的 ProgressBar 。.zip,显示进度百分比的android自定义循环progressbar和行progressbar
总共分为三层:一层为圆形边线,一层为进度边线,一层用来显示标识进度节点。 public class CircleProgressBar extends View { private int maxProgress = 100; private int progress = 15; private int ...
CircleProgressView一个Android组件,以百分比形式显示进度。 屏幕截图:Gradle将其添加到存储库末尾的root build.gradle中:依赖项{... maven {url'https:// j CircleProgressView一个Android组件,以百分比形式...
圆形的progressbar 可在中间设置文字、进度百分比等 使用: <custom.RoundProgressBar android:id="@+id/pb_driver_score" android:layout_width="80dp" android:layout_height="80dp" android:layout_...
进度条是UI界面中一种实用的UI组件,用于显示一个耗时操作显示出来的百分比,进度条可以动态的显示进度,避免是用户觉得系统长时间未反应,提高用户的体验。 下面程序简单示范了进度条的用法,界面布局文件如下: ...
该源码实现了可以带文字的进度条progressbar效果,在进度条中可以有百分比的显示,可以让你更容易知道进度的快慢等,也是一款很不错的进度条效果的,大家可以了解一下吧。
自定义ProgressBar的实现,并显示当前进度的百分比。
无法显示进度 - 必须设置「style」为「@android:style/Widget.ProgressBar.Horizontal」 style="@android:style/Widget.ProgressBar.Horizontal" 效果图与示例 apk 点击下载 BGAProgressBarDemo.apk 或扫描下面的...
在上一讲中 OkHttp下载文件并带进度条 中,我们知道怎样去下载文件了。那上传文件呢 一、编写服务器端 在上一讲服务器下新建UploadFileServlet,代码如下:然后重启服务器! @WebServlet(/UploadFileServlet) @...
1.2.0:由于手机上的凹口而使吐司,等待球和百分比文本被删除,即使添加了手动放置它们并计算凹口坐标的方法,这也会使它们至少在某些设备上被覆盖导致一个简单想法的丑陋定位 显示进度的另一种方式。 在系统Status...
有些App在点击下载按钮的时候,可以在按钮上显示进度,我们可以通过继承原生Button,重写onDraw来实现带进度条的按钮。 Github:https://github.com/imcloudfloating/ProgressBar 1.效果: 2.原理: 创建三个...