Android 包含图像按钮的活动加载时间过长

Android 包含图像按钮的活动加载时间过长,android,android-image,Android,Android Image,我有一个活动,有50+图像按钮。每个图像的大小约为30-40KB。当我打开活动时,需要2-3秒。 我能做些什么快速打开它 <Button android:id="@+id/desi_unique" android:layout_width="match_parent" android:layout_height="70dp"

我有一个活动,有50+图像按钮。每个图像的大小约为30-40KB。当我打开活动时,需要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" />

简单回答:缓存那些图像

如果你想用抽绳,试试看

怎么做

使用一个名为Google.inc.的库。它会自动为您缓存图像。 当然,无论何时首次加载“活动”,都需要一些时间,但一旦将其缓存到内存中,如果下次启动“活动”,则不会花费太多时间

免责声明:上述声明的范围仅限于应用程序的一次启动。一旦终止应用程序,就必须再次加载它们

但是,加载如此多的图像(从可绘制文件)并不被认为是一种好的做法,它会对应用程序的性能产生多方面的影响。因此,您应该更改UI


不过,在加载/显示这么多图像时,这听起来是一个更好的选择

简单回答:缓存那些图像

如果你想用抽绳,试试看

怎么做

使用一个名为Google.inc.的库。它会自动为您缓存图像。 当然,无论何时首次加载“活动”,都需要一些时间,但一旦将其缓存到内存中,如果下次启动“活动”,则不会花费太多时间

免责声明:上述声明的范围仅限于应用程序的一次启动。一旦终止应用程序,就必须再次加载它们

但是,加载如此多的图像(从可绘制文件)并不被认为是一种好的做法,它会对应用程序的性能产生多方面的影响。因此,您应该更改UI



不过,在加载/显示这么多图像时,这听起来是一个更好的选择

使用像Glide或毕加索这样的第三方库是有效的。我认为当图像数量超过50个时,您可以更改应用程序UI并使用recyclerView。我认为这是更好的方法

使用像Glide或毕加索这样的第三方库是有效的。我认为当图像数量超过50个时,您可以更改应用程序UI并使用recyclerView。我认为这是更好的方法

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

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

你可以使用多个AsyncTask来完成这项工作。@Raj我怎么能。试着用谷歌搜索
RecyclerView
@DigVijayShingGohil Enowledge of RecyclerView。这些按钮打开从服务器加载数据的recyclerview片段。然后,
glide
是我知道的唯一解决方案,
改造
也可能,但来自服务器的图像需要一些时间,因为丹尼斯的回答说,你可以使用多个异步任务来完成这项工作。@Raj我怎么可以。试试谷歌
RecyclerView
@digvijaysinggohil拥有丰富的RecyclerView知识。这些按钮打开从服务器加载数据的recyclerview片段。然后,
glide
是我知道的唯一解决方案,
Reformation
也许也可以,但来自服务器的图像需要一些时间,因为dennis的回答是:“我可以使用recyclerview吗?”?所有的按钮都是静态的,图片都是可绘制的。即使是RecyclerView也可以使用可绘制的。但由于你的按钮是静态的,你真的不必这么做。问题是,现实世界的应用程序不是这样工作的。数据始终是动态的,即需要从服务器获取数据。说到数据,我指的是图像。是的,我总是这样做。我如何使用recyclerview?所有的按钮都是静态的,图片都是可绘制的。即使是RecyclerView也可以使用可绘制的。但由于你的按钮是静态的,你真的不必这么做。问题是,现实世界的应用程序不是这样工作的。数据始终是动态的,即需要从服务器获取数据。说到数据,我指的是图像。是的,我总是这样做。