gpt4 book ai didi

Android drawText 包括文本换行

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:40:10 29 4
gpt4 key购买 nike

我目前正在创建一个图像编辑器,并尝试使用 canvas.drawText() 在图像上绘制文本。到目前为止,我已经成功地做到了这一点,但是当用户输入太长的文本时,文本只会在页面外的一行上继续,并且不会将自身换行到屏幕的宽度。我该怎么做呢?我试过使用静态布局,但似乎无法让它工作,有人有教程吗?

我使用静态布局在 Canvas 上绘图的函数:

 public Bitmap createImage(float scr_x,float scr_y,String user_text){

Canvas canvas = new Canvas(image);

scr_x = 100;
scr_y = 100;
final TextPaint tp = new TextPaint(Color.WHITE);
canvas.save();
StaticLayout sl = new StaticLayout("" + user_text, tp, originalBitmap.getWidth(), Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
sl.draw(canvas);

return image;
}

好的,我已经更新了我的代码,但是当我尝试在图像上绘制时什么也没有发生,我也不知道为什么:

    public Bitmap createImage(String user_text) {
// canvas object with bitmap image as constructor
Canvas canvas = new Canvas(image);
TextPaint tp = new TextPaint();
tp.setColor(Color.RED);
tp.setTextSize(50);
tp.setTextAlign(Align.CENTER);
tp.setAntiAlias(true);
StaticLayout sl = new StaticLayout("" + user_text, tp,
canvas.getWidth(), Layout.Alignment.ALIGN_NORMAL, 1, 0, false);
canvas.translate(100, 100);
sl.draw(canvas);
return image;
}

staticlayout不是用来在canvas上画画的吗?

最佳答案

是的,StaticLayout 您打算用来在 Canvas 上绘制多行文本的东西。为自己省去一个痛苦的世界,不要考虑自己破坏文本——你走在正确的道路上。

我不确定位图问题,但上面的第二个代码可以很好地为我在 Canvas 上绘制文本。

Learn to use StaticLayout , 然后 draw the Layout object onto a canvas使用 Layout.draw() 方法。

引用资料

关于Android drawText 包括文本换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18453948/

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