android中在progressBar上添加文字显示百分比进度
工作中遇到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上添加文字显示百分比进度相关推荐
- android 自定义带刻度的seekbar,[Android开发]仿天天P图带气泡显示百分比进度的自定义SeekBar...
仿天天P图图像美化修改工具,素材来自于天天P图,效果图 效果就是点击之后会有气泡显示进度,优点是气泡不占用控件的高度 其他效果可参看https://github.com/AnderWeb/discre ...
- [Android开发]仿天天P图带气泡显示百分比进度的自定义SeekBar
转载自:https://my.oschina.net/wuhaoyu/blog/607827 仿天天P图图像美化修改工具,素材来自于天天P图,效果图 效果就是点击之后会有气泡显示进度,优点是气泡不占用 ...
- android 浮动文字提示,怎么在Android中实现一个自由拖动并显示文字的悬浮框
怎么在Android中实现一个自由拖动并显示文字的悬浮框 发布时间:2021-01-27 15:34:05 来源:亿速云 阅读:107 作者:Leah 今天就跟大家聊聊有关怎么在Android中实现一 ...
- python中label函数_python实现在函数图像上添加文字和标注的方法
如下所示: import matplotlib.pyplot as plt import numpy as np from matplotlib import font_manager #先确定字体, ...
- android 调取数字键盘,如何在android中的EditText上显示数字键盘?
如何在android中的EditText上显示数字键盘? 我只是想在某个EditText具有焦点时立即切换到数字键盘模式. 13个解决方案 239 votes 您可以为EditText配置EditTe ...
- Android中如何设置RadioButton在文字的右边,图标在左边
本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/p/5411953.html,如需转载请自行联系原作者Android中如何设置RadioButto ...
- python怎么加图片_怎么在图片旁边加文字 python如何在图片上添加文字 - 励志 - 52资讯网...
Python在图片上添加文字的两种方法:OpenCV和PIL 一.OpenCV方法 1.安装cv2 pip install opencv-python 2.利用putText方法来实现在图片的指定位置 ...
- android 自定义进度条_第一百八十九回:Android中自定义ProgressBar三
各位看官们大家好,上一回中咱们说的是Android中自定义ProgressBar的例子,这一回咱们继续说该例子.闲话休提,言归正转.让我们一起Talk Android吧! 看官们,我们在上一回是通过自 ...
- 【PHP实例】使用GD2函数在图片上添加文字
实例说明 PHP 中的 GD 库支持中文,但必须要以 UTF-8 格式的参数来进行传递.如果使用imageString () 函数直接绘制中文字符串,就会显示乱码,这是因为GD2 对中文只能接收UTF ...
最新文章
- 优化网站的TDK要注意哪些问题?
- python版本的策略模式
- 转:论文写作与投稿的一点经验,加两封催稿信
- 关于眼界、眼光、眼前的哪些....
- 有关手游设计ICON的几点建议
- LeetCode 1291. 顺次数(模拟)
- SpringBoot 精通系列-构建一个RESTful Web 服务
- 深度linux桌面启动器,在Deepin桌面系统启动器中创建“我的世界”启动项
- 苹果A13和A11性能差距有多大?
- Vue2.0进阶组件篇2 解析饿了么(spinner组件)
- PostSQL编写经验(利用坐标值,创建空间要素字段)
- vb实现随机生成100个整数,将其中的奇数由大到小排序,偶数由小到大排序,找出其中所有素数并求和
- 如何将图片转成Excel表格
- 来自腾讯的高性能服务器架构思路
- 吉软-Java57-第一次作业
- TFT和STN液晶区别
- 当x大于时,y等于1;当x等于0时,y等于0;当x小于0时,y等于-1。
- 转】基于GeoServer的电子地图系统说明(四):空间数据库实现
- java微信网页支付_java实现微信H5支付
- 力扣每日一题2021-12-24中等题:吃苹果的最大数目
热门文章
- 如何打英語音標, 快速輸入音標
- 【小知识】微软(Microsoft)的win7 SP1补丁,细分版本CHK和FRE的区别
- 100%国产C2000,P2P替代TMS320F280049C,独立32位双核CPU,主频高达400MHz
- DataTable的AcceptChanges()和RejectChanges()方法
- 系统架构设计师 4:信息安全技术
- 使用poi复制sheet页,拷贝sheet,sheet插入行,复制行
- 解决win10任务栏不显示WLAN图标的一种方法
- selenium 学习网站
- 【操作消息提醒——AjaxResult】和【返回状态码——HttpStatus】
- 算法专利的“卡脖子PTSD”综合症,到底能不能好了?