【发布时间】:2013-10-14 10:27:59
【问题描述】:
我希望SurfaceView 位于TextView 之上,这样我就可以在文本顶部显示各种不同的实线。
我在网上看到的所有教程都没有使用Fragments,这对我来说是个问题,因为我的布局是在片段中设计的。 如何从我的片段中设置这个表面视图?
【问题讨论】:
标签: android android-fragments surfaceview
我希望SurfaceView 位于TextView 之上,这样我就可以在文本顶部显示各种不同的实线。
我在网上看到的所有教程都没有使用Fragments,这对我来说是个问题,因为我的布局是在片段中设计的。 如何从我的片段中设置这个表面视图?
【问题讨论】:
标签: android android-fragments surfaceview
首先,我不相信你可以让SurfaceView“坐在”TextView 之上。 SurfaceView 将擦除它下面的视图层次结构中的所有内容,以便您可以看到包含它提供的表面的单独窗口。
其次,您根本不需要SurfaceView。创建TextView 的子类并覆盖它的onDraw 方法。用传递给那里的Canvas 画线或其他任何东西。
编辑:
public class TextWithLinesView extends TextView {
// ...
// Constructor with Context parameter, etc.
// ...
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
// Use the Canvas to draw whatever you'd like here
}
}
【讨论】:
View 的类中绘制任何您想要的内容,只需覆盖onDraw。我在答案中添加了示例代码。
onDraw。操作系统将在适当的时候使用与绘制TextView 相同的Canvas 调用它。