В Google есть учебный класс, отвечающий на ваш первый вопрос here. Он показывает вам, как загружать растровое изображение в фоновом режиме с помощью AsyncTask и кэшировать его как в памяти с помощью LruCache, так и на диске с DiskLruCache (включенным в загрузку BitmapFun.zip, найденным по ссылке), пока отображается ProgressBar до изображения Скачано
Можно ли использовать другой вид (а не ViewFlipper)?
В приведенном выше примере используется ViewPager.
серия белых точек с черным под текущим изображением.
Я не знаю, есть ли такое представление доступно из Android SDK, но this сторонний виджет (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 будет показывать.
Затем извлечь ImageView из кода, используя его идентификатор, и когда вы загрузили изображение в Bitmap вы используете:
imageView.setImageDrawable(loadedImage);
Теперь, когда ImageView есть изображение не будет прозрачным больше и ProgressBar не будет отображаться (вы также можете добавить идентификатор в панель выполнения, если вы хотите установить его в View.GONE для оптимизации вашего макета).
Как я могу поддерживать связь с ImageView и ProgressBar? –