android 自定义ProgressBar 文字跟随进度效果
来源:互联网 发布:淘宝自动下架之后 编辑:程序博客网 时间:2024/05/08 08:10
1 字体适配
private void textSizeAdaptive() { //1.获取当前设备的屏幕大小 DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); //2.计算与你开发时设定的屏幕大小的纵横比(这里假设你开发时定的屏幕大小是480*800) int screenWidth = displayMetrics.widthPixels; int screenHeight = displayMetrics.heightPixels; float ratioWidth = (float) screenWidth / 1080; float ratioHeight = (float) screenHeight / 1920; ratio = Math.min(ratioWidth, ratioHeight); if (ratioWidth != ratioHeight) { if (ratio == ratioWidth) { offsetLeft = 0; offsetTop = Math.round((screenHeight - 1920 * ratio) / 2); } else { offsetLeft = Math.round((screenWidth - 1080 * ratio) / 2); offsetTop = 0; } } //3.根据上一步计算出来的最小纵横比来确定字体的大小(假定在1080*1920屏幕下字体大小设定为35) TEXT_SIZE = Math.round(textsize * ratio); }
- onDraw
@Override protected synchronized void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); canvas.save(); mText = (getProgress() * 100 / getMax()) + "%"; Rect rect = new Rect(); mPaint.getTextBounds(leftText, 0, leftText.length(), rect); int y = (getHeight() / 2) - rect.centerY(); //在进度条上画上自定义文本 canvas.drawText(leftText, 5, y, mPaint); int width = rect.width(); //进度 float radio = getProgress() * 1.0f / getMax(); float progressPosX = (int) (mRealWidth * radio); //起始点 int beginX = 10 + width; //结束点 float textWidth = mPaint.measureText(mText); float endX = mRealWidth - textWidth; if (beginX > progressPosX- textWidth) { canvas.drawText(mText, beginX, y, mPaint); } else if (progressPosX- textWidth > endX) { canvas.drawText(mText, endX, y, mPaint); } else { canvas.drawText(mText, progressPosX - textWidth, y, mPaint); } canvas.restore(); }
下载地址 http://download.csdn.net/download/liudao7994/10130885
阅读全文
0 0
- android 自定义ProgressBar 文字跟随进度效果
- 自定义ProgressBar---跟随进度的 Popwindow
- android progressBar 自定义 进度颜色
- 自定义ProgressBar带进度数字效果
- android中实现PopupWindow跟随ProgressBar进度显示
- Android自定义进度条-带文本(文字进度)的水平进度条(ProgressBar)
- Android自定义进度条-带文本(文字进度)的水平进度条(ProgressBar)
- Android自定义进度条-带文本(文字进度)的水平进度条(ProgressBar)
- Android 自定义ProgressBar--进度自己设置图片
- Android Progressbar自定义菊花效果
- 自定义圆形progressbar(包含进度动画效果)
- 自定义view圆环跟随progressbar进度改变中心的texview(百分比)
- Android ProgressBar自定义图片进度,自定义渐变色进度条
- Android ProgressBar自定义图片进度,自定义渐变色进度条
- Android ProgressBar自定义图片进度,自定义渐变色进度条
- Android ProgressBar自定义图片进度,自定义渐变色进度条
- Android ProgressBar自定义图片进度,自定义渐变色进度条
- Android ProgressBar自定义图片进度,自定义渐变色进度条
- SIP呼叫流程典型流程图解
- 下拉列表在数据库中的存储方式
- Docker 问答录(100 问)
- Java【集合系列】-03-ArrayList详细介绍(源码解析)和使用示例
- bzoj2882 工艺【最小表示法】
- android 自定义ProgressBar 文字跟随进度效果
- HTTP请求工具类
- Cordova系列学习教程03 Cordova简单功能的实现
- Oracle系统表整理+常用SQL语句收集
- NTP服务器的搭建与错误分析
- 细说JavaScript BOM
- 设备驱动程序INF文件解析
- nginx基础配置学习
- laravel model 两表联查