由于视图太多,程序滞后

时间:2016-07-04 20:29:54

标签: android performance view android-imageview android-drawable

我写了一个Android应用,创建了多个简单视图(ImageViews showing a drawable)。每次触摸后都会添加新视图。虽然它可以通过一些视图很好地工作,但它最终会增加10000个视图(故意)。这使得应用程序非常滞后。

实际上没有那么多发生,大多数观点在应用程序的整个运行过程中保持不变。每次触摸发生时,只有少数会更新。

我还不太了解Android编程。你有什么想法,我怎样才能更有效地实现这个?目前,我只是将视图添加到RelativeLayout

修改

以下是它应该如何显示的示例: enter image description here

点击一个大圆圈使其成为小圆圈。如果没有任何东西触及圆圈,它就不会改变。一旦较大的圆圈被摧毁,我会创建一个较小的圆圈,因此没有重叠的视图。

1 个答案:

答案 0 :(得分:1)

最好的方法 - 使用RecyclerView

来自docs:

  

此小部件是一个容器,用于显示大型数据集,可以通过维护有限数量的视图来非常有效地滚动。如果数据集合的元素在运行时根据用户操作或网络事件而更改,请使用RecyclerView小部件。

RecyclerView.LayoutManager也是您与RecyclerView关系的朋友。这对你有所帮助。您可以根据需要布置您的观点:

enter image description here

更新

如果您想要指向布局视图:

enter image description here

为了获得更好的效果,您应该放弃RelativeLayoutImageView概念。

就我而言,最好的方法是 - 写一个自定义视图。

在画布上绘制圆圈 - 为什么不呢?