setImageResource() 以编程方式对多个 ImageViews 会导致崩溃



我在XML文件中创建了15个ImageViews,我必须以编程方式设置它们的图像。

我已经尝试了以下代码来执行此操作:

imageView1.setImageResource(R.drawable.imageOne);

它工作正常,直到我尝试使用所有 15 个ImageViews

imageView1.setImageResource(R.drawable.imageOne);
...
imageView15.setImageResource(R.drawable.imageFifteen);

现在,由于上面的代码,应用程序在尝试加载视图时崩溃。我收到这条奇怪的消息:I/Choreographer: Skipped 46 frames! The application may be doing too much work on its main thread.<</p>

div class="one_answers">我认为

您正在使用滚动视图,可重用视图不支持滚动视图。如果要创建多个图像视图并设置图像,则应使用支持可重用视图的列表视图/回收器视图等。尝试阅读有关可重用性的信息。

您的应用程序也可能崩溃,因为您正在加载需要更多内存才能显示的大图像。阅读:https://developer.android.com/topic/performance/graphics/load-bitmap.html

也许你把太多的工作委托给主线程,所以试着用不同的方式做。如果可能,请使用多线程编程。将应用逻辑与 UI 分开非常有用。使用 Java 线程、AsyncTask 或类似的东西。检查文档

最新更新