优化复杂的布局

时间:2012-12-05 11:23:49

标签: android android-layout user-interface

我为Android开发了一个音频播放器,在我的浏览相册活动中,我遇到了一个性能问题:滚动时滞后很多。

在此图片中是我的布局表示:enter image description here

这是一个显示行的ListView;一行包含5个按艺术家分组的专辑。

每种不同的颜色都是不同的布局文件。每个文件都由适配器管理。

在相册(橙色)中,我不在TextView上使用compoundDrawable,因为我有ImageView延迟加载,我不明白如何在textview compoundDrawable上进行这种延迟加载。

如果需要,我可以发布所有布局文件。

4 个答案:

答案 0 :(得分:2)

经过多次优化后,我改变了我的布局

My New Layout

答案 1 :(得分:1)

你读过这篇文章吗?

Android Performance Case Study

这可能对您的情况有所帮助,但不了解您如何设置视图,这只是一个建议。

答案 2 :(得分:0)

嗯,不确定,如果你的情况可以轻松实现,但我认为如果你将每个表行设为RelativeLayout,你可以删除行的大部分或全部LinearLayout元素。你只需要声明,行中的每个LinearLayout必须位于另一个的左侧/右侧:android:layout_toLeftOf和android:layout_alignParentRight。

答案 3 :(得分:0)

如果您需要简化布局以提高性能,则必须牺牲一些东西,这样的简化不会免费提供。 我认为最有希望的方法是用GridLayout替换你的行listview布局。原则上你可以使用一个这样的GridLayout来处理该行内的所有布局,但是为了获得真正的好处,你必须放弃GridView(艺术家的专辑网格)并将其作为GridLayout的一部分来处理。这可能需要一些额外的Java代码,但我认为它应该可以提高性能。