0

我正在尝试使用progressBar在许多imageView中从互联网加载许多图片。我成功做到了,但问题是所有图像都加载到第一个imageView(作为滑块)中。但我不知道要让它正确我意思是把每张图片下载到一个imageView中:

4

3 回答 3

1

DownloaderAsyncTask向您的构造函数添加一个参数。使用它在onPostExecute

int mIndex;
public DownloaderAsyncTask(Context context, int index) {
    mContext = context;
    mIndex = index;
}

protected void onProgressUpdate(Integer... progress) {
    Intent intA = new Intent("...");
    intA.putExtra("resultCounter", mIndex );
    intA.putExtra("int", progress[0]);
    context.sendBroadcast(intA);
}

protected void onPostExecute(ByteArrayBuffer result) {
    Intent intB = new Intent("....");
    intB.putExtra("resultCounter", mIndex );
    intB.putExtra("image", result.toByteArray());
    context.sendBroadcast(intB);
}

使用新的构造函数更改异步任务的初始化。

for(int i = 0; i < 5; i++) {
    DownloaderAsyncTask asyncTask = new DownloaderAsyncTask(getApplicationContext(), i);
    asyncTask.execute(links[i]);
}

当您获得 progCounter 值时,还将更改为 resultCounter 标记

// Broadcast receiver for PROGRESS BAR
BroadcastReceiver receiveProgress = new BroadcastReceiver(){
public void onReceive(android.content.Context context, Intent intent) {
   int progress    = intent.getIntExtra("int", 0);
   int progCounter = intent.getIntExtra("resultCounter", 0);
}
于 2013-10-26T17:39:17.030 回答
1

我正在做一个这样的项目。我使用了这个惰性加载器并获得了成功。

于 2013-10-26T19:30:59.550 回答
0

这是你的错误

在您的BroadcastReceiver receiveImage

您正试图从意图中获取progCounter的值。

  int progCounter = intent.getIntExtra("resultCounter", 0);

但是在您的 Async Task 中,您没有发送resultCounter的任何意图,因此每次您尝试获取 intent 的值时,它都会给您0(“resultCounter”,0),因为没有任何意图。

于 2013-10-26T17:29:44.880 回答