Я пытаюсь отобразить эскизы изображений в ListView.Изображения находятся в папке Camera на моей SDCard.Я использую BitmapFactory.decodeFile для чтения изображений.Я хотел бы отобразить ProgressDialog во время декодирования файлов.Я пытаюсь сначала показать ProgressDialog, а затем вызвать decodeFile в цикле for.ProgressDialog не отображается до окончания цикла for.Вызов decodeFile, по-видимому, выполняется до отображения ProgressDialog.
Как отобразить ProgressDialog перед циклом for?
открытый класс ActivityProgressBar расширяет ListActivity {
private Vector<RowFileData> fileDataDisplay = null;
RowFileData fileData;
ProgressDialog progressDialog = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
progressDialog = new ProgressDialog(this);
progressDialog.setMessage("Loading thumbnails...");
fileDataDisplay = new Vector<RowFileData>();
File currentDirectory = new File("/mnt/sdcard/dcim/camera");
File[] currentDirectoryFileList = currentDirectory.listFiles();
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inSampleSize = 16;
progressDialog.show();
for(int i=0; i<currentDirectoryFileList.length; i++)
{
File currentDirectoryFile = currentDirectoryFileList[i];
fileData = new RowFileData(BitmapFactory.decodeFile(currentDirectoryFile.getPath(), opts), currentDirectoryFile.getPath());
fileDataDisplay.add(fileData);
Log.v("myLog", "inside for loop");
}
}
private class RowFileData
{
protected Bitmap rowBitmap;
protected String rowFileName;
RowFileData(Bitmap bitmapPreview, String fileName)
{
rowBitmap = bitmapPreview;
rowFileName = fileName;
}
}
}
Я прокомментировалвызов метода progressDialog.dismiss () для проверки того, что ProgressDialog показывается после цикла for.Я удалил строки кода для отображения изображений в ListView для удобства чтения.Я подтвердил, что все еще был в цикле for с моим Журналом.
Спасибо