Android: покажите прогресс, как Google, в своих приложениях

Я использую AsyncTask для загрузки изображений для своего списка, потому что я не хочу, чтобы загрузка изображений блокировала мой пользовательский интерфейс. Пока изображения загружаются, я хочу показать анимированный круг прогресса в месте, где будет изображение.

Но я не могу найти изображение круга прогресса. Что такое идентификатор Ressource-Id? Или есть другой способ? У кого-то есть ссылка на этот образ?

Ответы

Ответ 1

Посмотрите индикатор выполнения. Он может работать (и по умолчанию, AFAIR) в неопределенном режиме, что означает, что он показывает вращающийся круг, как тот, который вы просите. Я знаю, что это не изображение, но то, что вы можете сделать, - это разместить FrameLayout вместо изображения, а индикатор выполнения - единственный. Затем, как только загрузка изображений закончится, удалите индикатор выполнения и добавьте изображение.

Ответ 2

Определите эту глобальную переменную ProgressDialog pd;

Как раз перед запуском AsyncTask выполните:

pd = ProgressDialog.show(CurrentClassName.this,"This is the title","This is the detail text",true,false,null);

Когда его сделанный onPostExecute просто вызовет pd.dismiss();

Подробнее см. ниже: ProgressDialog

Вам нужно будет принять особые меры, чтобы он работал, когда вы вращаете устройство во время разговора.

Ответ 3

Это пример файла макета для интро-активности с индикатором хода и кругом:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:contentDescription="@string/intro_description"
        android:scaleType="fitXY"
        android:src="@drawable/intro" />

    <ProgressBar
        android:id="@+id/progress"
        style="?android:attr/progressBarStyleInverse"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="150dp"
        android:visibility="visible" />

</FrameLayout>

Ответ 4

Вам нужен неопределенный ProgressBar. Взгляните на сайт разработчика -

ProgressBar