我有一个存在某些图片的网址。我想从该URL检索所有图像,并在GridView
中显示这些图像。现在当我点击网格视图中的任何拇指预览时,它应该放大或加载到全屏。
点击快照以更好地理解
答案 0 :(得分:6)
您可以尝试以下代码。延迟加载图像是加载图像的一个很好的解决方案,您可以尝试从以下链接延迟加载:Lazy load of images in ListView。在这里,他们在布局中使用了ListView,因此图像和相应的文本显示为列表项,您可以将ListView更改为GridView,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<GridView
android:id="@+id/gridv"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:columnWidth="90dp"
android:stretchMode="columnWidth"
android:gravity="center"/>
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Clear Cache"/>
</LinearLayout>
我认为这样可以解决问题。
答案 1 :(得分:5)
首先找出一种如何从单个链接下载所有图像的方法,我认为这有点困难。
然后将所有链接位置放入字符串数组中。现在使用以下代码下载图像。
public Drawable LoadImage(String url) {
Drawable d;
try {
InputStream is = (InputStream) new URL(url).getContent();
d = Drawable.createFromStream(is, "src name");
return d;
} catch (NullPointerException e) {
d = getResources().getDrawable(R.drawable.icon);
return d;
} catch (Exception e) {
d = getResources().getDrawable(R.drawable.icon);
return d;
}
}
获取存储链接位置的字符串数组的长度。在for循环内部尝试执行上面的代码。这将返回一个可绘制对象,您可以将其转换为资源或位图,并将其添加到GridView。