【问题标题】:I'm trying to write a text on canvas but nothing happens我正在尝试在画布上写文字,但没有任何反应
【发布时间】:2018-05-06 14:30:17
【问题描述】:

我正在尝试在画布上写一个文本并设置为 GL10 对象纹理,如下所示:

    Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_4444);
    bitmap.eraseColor(0);

    Canvas canvas = new Canvas(bitmap);
    canvas.translate(width, height);
    canvas.drawColor(Color.WHITE);

    Paint paint = new Paint();
    paint.setStyle(Paint.Style.FILL);
    paint.setColor(0xffffffff & Color.MAGENTA);
    paint.setAlpha(255);
    canvas.drawText("Hello world", 0, 30, paint);

如果我改变了纹理颜色,但文本没有出现。 有人知道为什么吗?

【问题讨论】:

  • 当 OpenGL ES 只使用 Canvas 时,您的问题与它有什么关系?
  • 为什么在代码中间调用“save()”?你在某处恢复状态吗?
  • 另一个问题 - 您是否使用视图在某处表示您的画布?代码 sn -p 好像不完整。
  • @Reaper 因为我试图将该画布作为纹理到 opengl 对象
  • @AleksandrMedvedev "save()" 这只是一个猜测,我正在尝试将此画布用作 3d 对象的纹理。

标签: java android opengl-es


【解决方案1】:

绘制文本的绘制对象似乎缺少 alpha 设置:

paint.setAlpha(255); //This line must be after paint.setColor(Color.MAGENTA);

paint.setColor(0xffffffff & Color.MAGENTA);

【讨论】:

  • 请检查位图的宽度和高度,您在100、200处绘制文本。并注释该行:paint.setTextSize(100);
  • 还是不行,如果你想我可以把整个项目上传到我的 git 上,也许它会帮助你解决问题。
猜你喜欢
  • 2023-02-07
  • 1970-01-01
  • 1970-01-01
  • 2022-12-06
  • 1970-01-01
  • 1970-01-01
  • 2015-04-20
  • 2021-05-13
  • 2017-05-13
相关资源
最近更新 更多