在继承 View 的自定义视图中添加一个 TextView

Posted

技术标签:

【中文标题】在继承 View 的自定义视图中添加一个 TextView【英文标题】:Add a TextView inside a Custom View that herited View 【发布时间】:2013-06-21 11:52:09 【问题描述】:

我想知道是否可以在继承自 View 的自定义视图中以编程方式添加文本视图。在这个 customView 中,我用画布绘制了一些形状,还需要放置一些文本。我尝试使用 drawText 但它没有提供足够的可能性,特别是对于文本的位置。基本上,我想把文字放在里面,并且正好放在一个圆圈的中间,同时我的文字正好适合这个圆圈(我已经知道该怎么做)。

这就是为什么我想知道是否可以通过声明并绘制它来添加一个文本视图。也许我需要使用充气机?

我真的不知道什么是最好的选择,所以我需要你的帮助:)

【问题讨论】:

扩展 TextView 而不是 View? 【参考方案1】:

您可以为此使用 drawText(String text, float x, float y, Paint paint) 方法。 像这样:

绘制 mPaint = new Paint();

mPaint.setColor(Color.BLACK);

mPaint.setAntiAlias(true);

mPaint.setStyle(Paint.Style.FILL);

canvas.drawText("你的文字在这里", 10, 20, mPaint);

【讨论】:

这不是文本视图 @mladj0ni 我已经更正了 drawText() 的参数以在画布中添加文本,这在问题描述中提供。我从来没有提到任何地方是 TextVIew。【参考方案2】:

您应该扩展 ViewGroup 子类,而不是扩展 View FrameLayout

这样您仍然可以使用画布绘制自定义视图,还可以将子视图添加到自定义绘制的视图组中。

【讨论】:

我扩展了RelativeLayout,但子视图是不可见的,它们只是不会出现..

以上是关于在继承 View 的自定义视图中添加一个 TextView的主要内容,如果未能解决你的问题,请参考以下文章

android中listvliew中的自定义字体Text-View

Android中的自定义视图控件

MVC:我应该在 View Controller 或 UIView 的自定义子类中添加和实现触摸手势吗

在 SwiftUI 的自定义视图中访问图像的修饰符

Android群英传笔记系列三 view的自定义:实现一个模拟下载

剑道树视图Angularjs上的自定义按钮