加载很多图像

时间:2013-10-26 17:13:50

标签: android android-asynctask imageview

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

3 个答案:

答案 0 :(得分: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);
}

使用新构造函数更改asynctasks的初始化。

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);
}

答案 1 :(得分:1)

我正在开展这样的项目。我使用了这个lazy loader并取得了成功。

答案 2 :(得分:0)

这是你的错误

BroadcastReceiver receiveImage

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

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

但是在您的异步任务中,您没有发送 resultCounter 的任何意图,因此每次尝试获取意图值时,它都会为您提供 0(“resultCounter”,0)< / strong>因为没有意图。