我有一个包含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" />
答案 0 :(得分:2)
简单的答案:缓存那些图像。
如果您要使用Drawables,请尝试COMPRESSING THOSE IMAGES.
如何?
使用Google.inc的名为Glide的库。它将自动为您缓存图像。 当然,每当您第一次加载该活动时,都会花费一些时间,但是一旦将其缓存在内存中,那么下次启动该活动就不会花费很多时间。
免责声明:以上声明的范围仅限于您的应用程序的一次启动。一旦您杀死了应用程序,就必须再次加载它们。
但是,加载这么多的图像(来自可绘制对象)不是一个好习惯,它会极大地影响应用程序的性能。因此,您应该更改UI。
但是同样,Recycler View在加载/显示这么多图像时听起来是一个更好的选择。
答案 1 :(得分:1)
使用第三方库(例如Glide或Picasso)非常有效。我认为,当图像数量超过50个时,您可以更改应用程序UI并也使用recyclerView。我认为这是更好的方法。
答案 2 :(得分:1)
您可以将RecyclerView与GridLayoutManager一起使用以具有相同的UI,并且当然可以使用诸如Fresco之类的第三方库之一。