工作中遇到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上添加文字显示百分比进度相关推荐

  1. android 自定义带刻度的seekbar,[Android开发]仿天天P图带气泡显示百分比进度的自定义SeekBar...

    仿天天P图图像美化修改工具,素材来自于天天P图,效果图 效果就是点击之后会有气泡显示进度,优点是气泡不占用控件的高度 其他效果可参看https://github.com/AnderWeb/discre ...

  2. [Android开发]仿天天P图带气泡显示百分比进度的自定义SeekBar

    转载自:https://my.oschina.net/wuhaoyu/blog/607827 仿天天P图图像美化修改工具,素材来自于天天P图,效果图 效果就是点击之后会有气泡显示进度,优点是气泡不占用 ...

  3. android 浮动文字提示,怎么在Android中实现一个自由拖动并显示文字的悬浮框

    怎么在Android中实现一个自由拖动并显示文字的悬浮框 发布时间:2021-01-27 15:34:05 来源:亿速云 阅读:107 作者:Leah 今天就跟大家聊聊有关怎么在Android中实现一 ...

  4. python中label函数_python实现在函数图像上添加文字和标注的方法

    如下所示: import matplotlib.pyplot as plt import numpy as np from matplotlib import font_manager #先确定字体, ...

  5. android 调取数字键盘,如何在android中的EditText上显示数字键盘?

    如何在android中的EditText上显示数字键盘? 我只是想在某个EditText具有焦点时立即切换到数字键盘模式. 13个解决方案 239 votes 您可以为EditText配置EditTe ...

  6. Android中如何设置RadioButton在文字的右边,图标在左边

    本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/p/5411953.html,如需转载请自行联系原作者Android中如何设置RadioButto ...

  7. python怎么加图片_怎么在图片旁边加文字 python如何在图片上添加文字 - 励志 - 52资讯网...

    Python在图片上添加文字的两种方法:OpenCV和PIL 一.OpenCV方法 1.安装cv2 pip install opencv-python 2.利用putText方法来实现在图片的指定位置 ...

  8. android 自定义进度条_第一百八十九回:Android中自定义ProgressBar三

    各位看官们大家好,上一回中咱们说的是Android中自定义ProgressBar的例子,这一回咱们继续说该例子.闲话休提,言归正转.让我们一起Talk Android吧! 看官们,我们在上一回是通过自 ...

  9. 【PHP实例】使用GD2函数在图片上添加文字

    实例说明 PHP 中的 GD 库支持中文,但必须要以 UTF-8 格式的参数来进行传递.如果使用imageString () 函数直接绘制中文字符串,就会显示乱码,这是因为GD2 对中文只能接收UTF ...

最新文章

  1. 优化网站的TDK要注意哪些问题?
  2. python版本的策略模式
  3. 转:论文写作与投稿的一点经验,加两封催稿信
  4. 关于眼界、眼光、眼前的哪些....
  5. 有关手游设计ICON的几点建议
  6. LeetCode 1291. 顺次数(模拟)
  7. SpringBoot 精通系列-构建一个RESTful Web 服务
  8. 深度linux桌面启动器,在Deepin桌面系统启动器中创建“我的世界”启动项
  9. 苹果A13和A11性能差距有多大?
  10. Vue2.0进阶组件篇2 解析饿了么(spinner组件)
  11. PostSQL编写经验(利用坐标值,创建空间要素字段)
  12. vb实现随机生成100个整数,将其中的奇数由大到小排序,偶数由小到大排序,找出其中所有素数并求和
  13. 如何将图片转成Excel表格
  14. 来自腾讯的高性能服务器架构思路
  15. 吉软-Java57-第一次作业
  16. TFT和STN液晶区别
  17. 当x大于时,y等于1;当x等于0时,y等于0;当x小于0时,y等于-1。
  18. 转】基于GeoServer的电子地图系统说明(四):空间数据库实现
  19. java微信网页支付_java实现微信H5支付
  20. 力扣每日一题2021-12-24中等题:吃苹果的最大数目

热门文章

  1. 如何打英語音標, 快速輸入音標
  2. 【小知识】微软(Microsoft)的win7 SP1补丁,细分版本CHK和FRE的区别
  3. 100%国产C2000,P2P替代TMS320F280049C,独立32位双核CPU,主频高达400MHz
  4. DataTable的AcceptChanges()和RejectChanges()方法
  5. 系统架构设计师 4:信息安全技术
  6. 使用poi复制sheet页,拷贝sheet,sheet插入行,复制行
  7. 解决win10任务栏不显示WLAN图标的一种方法
  8. selenium 学习网站
  9. 【操作消息提醒——AjaxResult】和【返回状态码——HttpStatus】
  10. 算法专利的“卡脖子PTSD”综合症,到底能不能好了?