【发布时间】:2021-12-14 03:00:47
【问题描述】:
我想用弧形扭曲 TextView。我知道可以扭曲图像,但是可以扭曲 TextViews 吗?这样做有既定的模式吗?
我的另一个选择是在 Photoshop 中扭曲文本,将其保存为透明背景,并使用 ImageView,但客户希望在大约 10 个地方完成此操作,如果可以的话,我想避免额外的资源。
【问题讨论】:
我想用弧形扭曲 TextView。我知道可以扭曲图像,但是可以扭曲 TextViews 吗?这样做有既定的模式吗?
我的另一个选择是在 Photoshop 中扭曲文本,将其保存为透明背景,并使用 ImageView,但客户希望在大约 10 个地方完成此操作,如果可以的话,我想避免额外的资源。
【问题讨论】:
您需要使用customView,覆盖onDraw(),创建路径并使用drawTextOnPath。
@Override onDraw(Canvas canvas){
Path mPath = new Path();
mPath.addCircle(x, y, 200, Path.Direction.CW);
canvas.drawTextOnPath(textToDraw, mPath, textX, textY, paint);
}
【讨论】:
Android 中的视图是矩形的,因此您必须使用 Canvas 和 Paint 来实现您的目标。 查看 SDK 示例中的 API 演示。有一个名为 Graphics/Text Align 的条目显示了沿弯曲路径绘制的文本。
【讨论】: