我在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.
答案 0 :(得分:3)
我认为您使用的是滚动视图,不支持可重复使用的视图。如果要创建多个图像视图并设置图像,则应使用支持可重用视图的listview / RecyclerView等。试着阅读有关可重用性的内容。
您的应用程序也可能因为您正在加载需要更多内存的大图像而崩溃。阅读: https://developer.android.com/topic/performance/graphics/load-bitmap.html
答案 1 :(得分:0)
也许您将工作委托给MainThread,所以尝试以不同的方式进行。 如果可能,请使用多线程编程。使您的应用程序逻辑与UI分离非常有用。使用Java线程,AsyncTask或类似的东西。查看documentation