快速说明,我不是最熟悉android API和术语的人。对不起,如果我错过名字。我的项目当前正在使用API 17。
我正在开发一个具有RAL颜色图表片段的项目。该片段具有280张以上的颜色和RAL编号图像。
当您向下滚动时,RAL片段的滞后性会逐渐变差。我已经将largeHeap设置为true,但是根据我的阅读,除非必须这样做,否则您希望避免这样做。我已经将所有图像压缩了近50%,这极大地提高了性能。我会对其进行更多压缩,但是它会稍微改变颜色,这将使图表变得比现在越来越不准确。
页面的基本布局是每行三张图片
(看起来像这样)
Image1 Image2 Image3
Image4 Image5 Image6
...
Image71 Image72
(最后一行只有2个)
图像的所有代码的格式如下:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:orientation="horizontal"
android:paddingTop="5dp">
<ImageView
android:id="@+id/imageView1000"
android:layout_width="100dp"
android:layout_height="100dp"
app:srcCompat="@drawable/ral1000" />
<ImageView
android:id="@+id/imageView1001"
android:layout_width="100dp"
android:layout_height="100dp"
app:srcCompat="@drawable/ral1001" />
<ImageView
android:id="@+id/imageView1002"
android:layout_width="100dp"
android:layout_height="100dp"
app:srcCompat="@drawable/ral1002" />
</LinearLayout>
我知道我的制作方法可能效率极低,但是我一直在寻找改善方法。我已经在Gridview和recylcerview上阅读了一些内容,但是我很难将它们包裹起来。我可以在其中使用include标签吗?
谢谢,非常感谢见识。
答案 0 :(得分:2)
在这种情况下,<include>
标签不会帮助提高性能,这很可能是因为将所有图像一次性加载到内存中,而不是像RecyclerView
那样按需加载。您应该研究结合使用RecyclerView
和GridLayoutManager
来解决此问题。
另一个优化技巧是使用.webp
https://developers.google.com/speed/webp/格式而不是.png
来节省更多空间。