首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反转画布的drawText()

反转画布的drawText()
EN

Stack Overflow用户
提问于 2018-10-08 10:25:54
回答 2查看 190关注 0票数 0

当我在canvas对象上绘制文本时,一直在寻找一种反转文本的方法。我在这里找不到任何相关的问题。(也许我使用了错误的关键字。)这就是我想用drawText()实现的

这个特性在android.graphics包中可用吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-11 05:51:53

这段代码解决了我的问题。

代码语言:javascript
复制
String textToWrite = "Hello World";
int padding = 5;
int paddingTop = padding;
int paddingBottom = padding;
int paddingLeft = padding;
int paddingRight = padding;

Rect bounds = new Rect();
mPaint.getTextBounds(textToWrite, 0, textToWrite.length(), bounds);

mPaint.setColor(Color.WHITE);
Bitmap bitmap = Bitmap.createBitmap(
        bounds.width() + paddingLeft + paddingRight,
        bounds.height() + paddingTop + paddingBottom,
        Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawColor(Color.BLACK);

int y = (bitmap.getHeight() + bounds.height() - padding)/2 ;
canvas.drawText(textToWrite, paddingLeft, y, mPaint);

如果要将这个倒置文本添加到画布的其余部分,只需将bitmap绘制到全局画布上,如下所示:

代码语言:javascript
复制
mOriginalCanvas.drawBitmap(bitmap, mCurrentX, mCurrentY, mOriginalPaint);
票数 0
EN

Stack Overflow用户

发布于 2018-10-08 11:10:07

不,android.graphics中没有类似的特性。

但是您的用例类似于夜间模式功能。有一些方法可以实现这一点,例如:

  1. TextView中使用不同的样式
  2. 创建一个自定义TextView来倒置背景和文本颜色。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52700247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档