gpt4 book ai didi

android - android 4.4 上的自定义字体渲染有空心透明文本

转载 作者:太空宇宙 更新时间:2023-11-03 12:56:07 24 4
gpt4 key购买 nike

我的一个应用程序在 android 4.4 上发生了一些奇怪的事情。我正在使用自定义 View ,在其中使用 Typeface.createFromAsset 设置自定义字体。如上图所示,渲染在设备/模拟器上运行良好。当我将自定义 View 的内容保存为位图时出现问题:

Bitmap currentBitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(currentBitmap);
view.draw(canvas);

在 android < 4.4 上一切正常。保存的图像看起来与屏幕上可见的图像相同。但是,在 4.4 上我只能看到字体边框,文本内部是透明的。我该如何解决这个问题?

enter image description here

最佳答案

在 API 19 及更高版本中的 Canvas 上绘制文本时,您必须注意所使用的 Paint 对象的描边和填充。在以前的 Android 版本中,文本总是绘制为填充,即使使用笔触样式也是如此。在 KitKat 中,将样式设置为 stroke 就可以做到这一点;描边而不是填充文本。您将需要在渲染文本时手动将绘画样式设置为填充,然后将其重新设置为描边以绘制其他内容(如果您正在尝试这样做)。

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);

mTextPaint.setStyle(Style.STROKE);
// do other setup on Paint object
// Draw non-text stuff

mTextPaint.setStyle(Style.FILL);
// do other setup on Paint object
// Draw all the text stuff
}

关于android - android 4.4 上的自定义字体渲染有空心透明文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20054227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com