android 背景图片居中显示文字,Android ImageSpan 给文字设置圆角背景 并且文字居中,背景居中。...
public class RadiusBackgroundSpan extends ReplacementSpan {
private int mColor;
private int mTvColor;
private int mTvSize;
/**
* @param color 背景颜色
* @param tvColor 需要改变文字颜色吗
* @param tvSize 需要改变文字大小吗
*/
public RadiusBackgroundSpan(int color, int tvColor, int tvSize) {
mColor = color;
mTvColor = tvColor;
mTvSize = tvSize;
}
@Override
public int getSize(Paint paint, CharSequence text, int start, int end, Paint.FontMetricsInt fm) {
//mSize就是span的宽度,span有多宽,开发者可以在这里随便定义规则
//我的规则:这里text传入的是SpannableString,start,end对应setSpan方法相关参数
//可以根据传入起始截至位置获得截取文字的宽度,最后加上左右两个圆角的半径得到span宽度
return (int) (paint.measureText(text, start, end));
}
@Override
public void draw(Canvas canvas, CharSequence text, int start, int end, float x, int top, int y, int bottom, Paint paint) {
paint.setColor(mColor);//设置背景颜色
// paint.setAntiAlias(true);// 设置画笔的锯齿效果
int bgPainth = Math.round(paint.getFontMetrics().descent - paint.getFontMetrics().ascent);
int bgSize = getSize(paint, text.subSequence(start, end), start, end, paint.getFontMetricsInt());
RectF oval =new RectF(x, y + paint.ascent(), x + bgSize, y + paint.descent() /2);
//设置文字背景矩形,x为span其实左上角相对整个TextView的x值,y为span左上角相对整个View的y值。paint.ascent()获得文字上边缘,paint.descent()获得文字下边缘
canvas.drawRoundRect(oval, (y + paint.descent()) /2, (y + paint.descent()) /2, paint);//绘制圆角矩形,第二个参数是x半径,第三个参数是y半径
//我这里是全圆。 你可以自己去根据你需要的。去除以
paint.setColor(mTvColor);//你需要的画笔文字颜色
paint.setTextSize(mTvSize);
int tvPainth = Math.round(paint.getFontMetrics().descent - paint.getFontMetrics().ascent);
int tvSize = getSize(paint, text.subSequence(0, 2), 0, 2, paint.getFontMetricsInt());
canvas.drawText(text, start, end, (bgSize - tvSize) /2, y - (bgPainth - tvPainth) /2 + (bgPainth - y) /2, paint);//绘制文字
}
}
android 背景图片居中显示文字,Android ImageSpan 给文字设置圆角背景 并且文字居中,背景居中。...相关推荐
- html select 上下居中显示,在IE8中使用padding设置select控件文字垂直居中
在火狐.苹果.谷歌.欧鹏等主流浏览器中,select下拉表单的文字能够垂直居中,如图: 而在ie8中,select下拉表单的文字基本就是靠底部显示,如图: 那么,如何使得ie8下的select文字垂直 ...
- html如何把图片在背景图一半,img只显示图片一部分 或 css设置背景图片只显示图片指定区域...
17:14 2016/3/22 img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片 ...
- 微信小程序设置背景图片不显示问题解决方法
最近开发小程序的过程中遇到了这样一个小问题,在wxss文件中通过background设置背景图片,要实现背景图片上显示文字的效果,发现背景图片不显示,设置背景图片的代码如下: .test {width ...
- laravel项目中css样式表的背景图片不显示
刚学laravel,遇到了很多坑,感觉laravel是挺强大的. 建好后台项目,奈何css样式表的背景图片不显示 .mainhd {background: url(../images/sky/body ...
- vue打包后CSS中引用的背景图片不显示问题
vue项目中,在css样式中引用了一张背景图片,开发环境下是可以正常显示,build之后背景图片不显示. 解决方法: 找到build/utils.js文件 修改成为如下所示内容: 添加红框中的内容即可 ...
- html背景图片只显示一张图片,img只显示图片一部分 或 css设置背景图片只显示图片指定区域(示例代码)...
17:14 2016/3/22 img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片 ...
- 微信小程序背景图片不显示
最近学着写了一个微信小程序,可是总是是加载不出背景图片.这里先描述一下问题. 用下面这种办法声明的背景图片在本机和手机上都无法显示. .container { height: 100%; displa ...
- 已解决:前、后端打包部署至服务器后,背景图片不显示并且一些图标都变成了方块
将打包好的jar包部署至服务器后,输入项目网址后,发现背景图片没有显示出来并且一些图标变成了方块. 解决办法:在前端找到bulid文件目录下的utils.js文件,添加以下语句: publicPath ...
- css 设置背景图一半_img只显示图片一部分 或 css设置背景图片只显示图片指定区域...
17:14 2016/3/22 img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片 ...
- Qt项目背景图片无法显示
问题描述: Qt加入背景图片,可运行时背景图片无法显示 这是Qt Designer中的界面,而在运行后背景是一片空白. 原因分析 我开始以为是我的qss代码出错了.当然代码开始也有一点问题,我没有把图 ...
最新文章
- 2016多校赛2 A 数学推公式 E 极角排序,组合数(待补) L dp+bitset优化
- zTree 异步加载 添加子节点重复问题 .
- 【技巧】数组元素相加等于某个目标值,js实现
- XMPP协议简单介绍
- 子进程 post-installation script 返回了错误号 解决方法
- CodeForces 699A Launch of Collider
- 得胜php100怎么样,优缺点评测得胜Q麦评价如何?怎么样呢?老司机透漏
- 全国计算机技术与软件专业技术资格(水平)考试徽标
- zabbix编译安装
- Linux入门学习(三)
- SharePoint如何模拟用户
- 动手学深度学习v2-线性代数课后习题
- 计算机考研数据结构答案,计算机考研数据结构试卷八(练习题含答案)
- idea 如何clean工程_IDEA中的clean,清除项目缓存图文教程
- 公有云、私有云和混合云介绍
- 阿里云视频点播一站式解决解决方案怎么样?
- 如何设置excel中一部分表格显示但是不打印?
- 创新案例分享 | 建设医院绩效管理系统,促进医院健康良性发展
- SQLite简介,C#调用SQLite
- 【华人学者风采】刘云浩 清华大学
热门文章
- android蓝牙多次后,android – 如何防止BluetoothGattCallback一次多次执行
- 【ArcGIS微课1000例】0018:ArcGIS设置相对路径和数据源
- C#遍历指定文件夹中的所有文件
- WireShare抓包在ssl协议里面提示(Level: Fatal, Description: Protocol Version)
- Android之使用PopupWindow让背景变黯但是华为手机出现屏幕一闪一闪问题解决办法
- python之sys.argv获取命令行的参数
- Android之通过ActivityLifecycleCallbacks判断程序是否运行在后台
- 【C语言简单说】七:自定义函数(1)
- tcp udp区别优缺点_一文搞懂TCP与UDP的区别
- java string 数据结构_数据结构---Java---String、StringBuilder、StringBuffer