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