Activity 包含图像按钮加载时间过长

Activity containing image button take too much time to load

我有一个 Activity 有 50+ 个图像按钮。每张图片大约 30-40 kb。当我打开 Acitivity 时,它需要 2-3 秒。 我该怎么做才能快速打开它。

   <Button
                        android:id="@+id/desi_unique"
                        android:layout_width="match_parent"
                        android:layout_height="70dp"
                        android:layout_margin="5dp"
                        android:background="@drawable/unique"
                        android:gravity="bottom|right"
                        android:paddingBottom="10dp"
                        android:paddingRight="5dp"
                        android:text="@string/unique"
                        android:textColor="@color/black"
                        android:textSize="15sp" />

简单的答案:缓存这些图像。

如果您要使用 Drawable,请尝试 COMPRESSING THOSE IMAGES.

如何?

使用 Google.inc 命名的库 Glide。它会自动为您缓存图像。 当然,当你第一次加载 activity 时,它会花费一些时间,但一旦它缓存在你的内存中,下次启动 activity 就不会花费太多时间.

免责声明:以上声明的范围仅限于您的应用程序的单次启动。终止应用程序后,您将不得不重新加载它们。

但是,加载如此多的图像(来自可绘制对象)并不是一个好的做法,它会成倍地影响应用程序的性能。因此你应该改变你的 UI.

不过,loading/displaying 这么多图片时,Recycler View 听起来是一个更好的选择。

使用像 Glide 或 Picasso 这样的第三方库是高效的。我认为当图像数量超过 50 时,您可以更改应用程序 UI 并也使用 recyclerView。我认为这是实现此目的的更好方法。

您可以将 RecyclerView 与 GridLayoutManager 一起使用以获得相同的 UI,当然您也可以使用 Fresco 等第三方库之一。