gpt4 book ai didi

Android - 自定义 View 和 Canvas 大小 - 鸡和蛋的概率

转载 作者:行者123 更新时间:2023-11-30 03:19:27 25 4
gpt4 key购买 nike

我正在设计一个显示表达式的自定义 View (您可以将其视为一个复杂的 TextView)。

随着表达式的增长,我希望我的自定义 View 能够扩展以适应它(就像 wrap_content TextView)。

当 View 的内容改变时,我缓冲一个 Canvas ,稍后由 onDraw()

绘制

缓冲是使用

Bitmap canvasBitmap = Bitmap.createBitmap(width, height , Config.RGB);
Canvas canvas = new Canvas(canvasBitmap);
canvas.drawText(pos,text, paint);
pos += paint.MesureText(text);
// and so on...
...
...

只有在这个过程结束时我才知道我真正需要的 Canvas 宽度 - pos 的值,但我需要它在 Bitmap.createBitmap() 中计算之前。有没有办法在不指定边界的情况下创建 Canvas ,然后将其裁剪成合适的大小?我不想先执行该过程以找出我需要的宽度,然后再次运行它以创建合适大小的 View 。

如有任何建议,我们将不胜感激。

最佳答案

使用 ViewsonSizeChanged 回调来创建和填充缓冲区。

这在急切缓冲数据和仅在 View 具有适当大小时才延迟数据之间提供了良好的平衡。

关于Android - 自定义 View 和 Canvas 大小 - 鸡和蛋的概率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19435801/

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