我开发的应用程序显示的列表视图包含用户点击时编辑的不同图像。
这是我的row.xml文件的代码。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="80dp"
android:layout_height="80dp"/>
<TextView
android:id="@+id/textView1"
android:layout_marginTop="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:layout_marginLeft="8dp"
android:text="TextView"
android:textSize="25sp"
/>
我只使用一组图像,存储在文件夹res / drawable / drawable-nodpi中(因为我需要它们保持原始大小才能将它们编辑为位图)。
问题是这些图像也会在单个活动中显示出来,因此,当我创建列表视图时,它会使用大量内存,而列表会滚动一些延迟。如何在没有此问题的情况下在列表中显示这些图像?我应该创建另一组较小的图像以在列表中使用它们吗?当应用程序将图像保存到SD卡或缓存中时,我已经阅读了帖子,但实际上我不确定哪种解决方案最适合我的特定应用程序。
提前致谢
答案 0 :(得分:0)
答案 1 :(得分:0)
试试这个.. Android-Universal-Image-Loader libriary。该项目旨在为异步图像加载,缓存和显示提供可重用的工具。它最初基于Fedor Vlasov的项目,并且从那时起经过了大量的重构和改进。
https://github.com/nostra13/Android-Universal-Image-Loader
对于可绘制资源,请使用此..
String imageUri =&#34; drawable://&#34; + R.drawable.image; //来自drawables(仅限图片,非9patch)
答案 2 :(得分:0)
我认为这些方法可能有所帮助:
将这些图像放入服务器,然后使用通用图像加载程序加载它。通用图像加载器已经解决了这个问题您可以尝试此项目https://github.com/dodola/Android-Universal-Image-Loader
如果您必须将这些图像放入res中,我认为您可以实现自己的图像加载器。在Image加载器中,您必须使用软引用将图像缓存在内存中。这是另一个问题。
答案 3 :(得分:0)
我建议您使用A Query下载图像。只需从this link
下载jar文件即可使用方法:
AQuery _aq = new AQuery(youractivity context);
//fetch and set the image from internet, cache with file and memory
aq.id(R.id.your_imageview_object).image("http://www.vikispot.com/z/images/vikispot/android-w.png");