SurfaceView vs View绘图的最佳解决方案?

时间:2015-09-07 16:26:00

标签: android

我想在用户点击按钮时显示分数(让+1飞到屏幕顶部),我想知道使用表面视图或视图是否更好?

2 个答案:

答案 0 :(得分:2)

有关SurfaceViewView之间差异的详情,请参阅here

对于您的情况,View可能更简单和恰当。

  

如果您的应用程序不需要大量处理或帧速率(可能用于国际象棋游戏,蛇形游戏或其他慢速动画应用程序),那么您应该考虑创建自定义视图组件并使用View.onDraw()中的Canvas。这样做的最方便的方面是Android框架将为您提供预定义的Canvas,您可以在其中进行绘图调用。

另一方面,SurfaceView未在主线程上绘制,而是在辅助线程上进行:

  

SurfaceView是View的一个特殊子类,它在View层次结构中提供专用的绘图表面。目的是将此绘图表面提供给应用程序的辅助线程,以便应用程序不需要等到系统的View层次结构准备好绘制。相反,引用SurfaceView的辅助线程可以按照自己的节奏绘制到自己的Canvas。

答案 1 :(得分:0)

我认为观点更适合这种情况。您可以将视图转换为屏幕顶部。

到目前为止,我只使用SurfaceView渲染背景图形。当然你可以使用SurfaceView来做到这一点,但这会在编码方面带来更多的复杂性。你需要画出这个" + 1"并逐帧计算其位置。

使用视图,您可以只应用动画,设置持续时间,这应该可以解决问题。