0

我有个问题。

我有 ViewFlipper 的片段和一些字符串数据数组(图像 url)。

如何对这些图像进行延迟加载并显示进度条,直到图像被加载(并尽可能缓存它们)?我可以使用不同的视图(不是 ViewFlipper)吗?

第二个问题。如何使视图显示当前图像位置?比如当前图片下的一系列白点带一个黑色。如果当前图像的第一个- 第一个黑点。谢谢。

4

1 回答 1

0

谷歌有一个培训班在这里回答你的第一个问题。它向您展示了如何使用AsyncTask在后台加载位图,并使用 LruCache将其缓存在内存中和使用DiskLruCache(包含在链接中的 BitmapFun.zip 下载中)同时显示ProgressBar直到图像已下载

我可以使用不同的视图(不是 ViewFlipper)吗?

上述示例使用 ViewPager。

当前图片下方带有黑色的一系列白点。

我不知道 Android SDK 是否有这样的视图,但是这个第三方小部件(Apache 2.0 许可证)似乎可以满足您的需求。

我如何在 ImageView 和 ProgressBar 上保持链接?

我不确定我是否理解这个问题,但如果您问如何从 ProgressBar(图像正在加载时)转到 ImageView,那么答案是使用 FrameLayout,其中包含 ProgressBar 和 ImageView:

<FrameLayout ...>
  <ProgressBar ... />
  <ImageView 
    android:id="@+id/imageView"
    ... />

</FrameLayout>

(有关更多详细信息,请参阅练习中的 image_detail_fragment.xml)

ImageView 将被绘制在 ProgressBar 的前面,但由于它最初没有背景,也没有图像,因此它将是透明的,并且 ProgressBar 将显示。

然后,您使用它的 id 从您的代码中检索 ImageView,当您将图像加载到您使用的位图中时:

imageView.setImageDrawable(loadedImage);

现在 ImageView 有一个图像,它将不再是透明的,ProgressBar 也不会显示(如果您想将其设置为 View.GONE 以优化您的布局,您也可以在进度条中添加一个 id)。

于 2013-04-17T15:55:07.290 回答