【问题标题】:Reduce memory usage with lots of images减少大量图像的内存使用
【发布时间】:2018-12-18 20:33:29
【问题描述】:

请注意,我不是最熟悉 android API 和术语的人。对不起,如果我错过了一些名字。我的项目目前正在使用 API 17。

我正在处理一个包含 RAL 颜色图表片段的项目。这个片段有超过 280 张颜色和 RAL 编号的图像。

当您向下滚动时,RAL 片段的延迟会逐渐变差。我已将 largeHeap 设置为 true,但根据我所读到的内容,您希望避免这样做,除非您必须这样做。我已经将所有图像压缩了近 50%,这极大地提高了性能。我会更多地压缩它们,但它会稍微改变颜色,这会使图表变得越来越不准确。

页面的基本布局是每行三张图片

(有点像)

图像1 图像2 图像3

图像4 图像5 图像6

...

图像71 图像72

(最后一行只有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 和 recyclerview 的内容,但是我很难理解它们。我可以在其中使用包含标签吗?

谢谢,非常感谢您的洞察力。

【问题讨论】:

  • 您的应用程序可能会滞后,因为您将所有图像一次加载到内存中(只是猜测而没有看到您的代码),而不是仅在它们可见时才加载。将RecyclerViewGridLayoutManager 一起使用很可能会提高性能,而无需压缩任何图像。请参阅此答案以获得简单的实现 - stackoverflow.com/questions/40584424/…

标签: java android android-studio


【解决方案1】:

&lt;include&gt; 标记在这种情况下无助于提高性能,因为这可能是由于一次将所有图像加载到内存中,而不是像 RecyclerView 那样按需加载。您应该考虑使用 RecyclerViewGridLayoutManager 来解决此问题。

另一个优化技巧是使用.webp https://developers.google.com/speed/webp/ 格式而不是.png 以节省更多空间。

【讨论】:

    猜你喜欢
    • 2011-06-04
    • 1970-01-01
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    • 2015-09-12
    • 2022-08-23
    相关资源
    最近更新 更多