Как отобразить анимацию прогресса загрузки для какого-либо изображения? - PullRequest
10 голосов
/ 03 декабря 2010

Я хотел бы показать индикатор выполнения (в виде вращающегося круга или чего-то подобного) при загрузке изображения из удаленного местоположения.

Мне не нужен стандартный ProgressBar, который отображается в середине экрана.Я хотел бы иметь его в середине imageView (или макет, который содержит ImageView).Есть ли простой способ сделать это?Например, у меня есть возможность прикрепить progressBar к некоторому представлению?

Я читал о FrameAnimation.Я думаю, что сделаю это, но сначала я хочу убедиться, что я не изобретаю колесо заново.

Спасибо.

Ответы [ 2 ]

17 голосов
/ 03 декабря 2010

Вы имеете в виду как прядильщик?

Да, вы можете сделать это:

Вот пример кода:

<!--Grey Spinner-->
<ProgressBar
    android:id="@android:id/progress"
    style="?android:attr/progressBarStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
/>
<!--Black Spinner-->
<ProgressBar
    android:id="@android:id/progress"
    style="?android:attr/progressBarStyleSmallInverse"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
/>

Вот некоторые другие атрибуты стиля, которые вы можетеиспользуйте, просто замените вышеуказанные атрибуты стиля на один из них, например style=?android:attr/<one of the attribute from below list>

    progressBarStyleSmallTitle
    progressBarStyleLarge
    progressBarStyleLargeInverse
    progressBarStyleHorizontal
    progressBarStyleSmallTitle

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

Добавить счетчик в строку заголовка с помощью следующего кода (запрос вызова .. в onCreate ()):

requestWindowFeature(Window.FEATURE_PROGRESS);
//calling setContentView() after requesting
setContentView(R.layout.main);
setProgressBarVisibility(true);
//call setProgressBarVisibility(false); to turn it off

Надеюсь, это поможет.Ура!

5 голосов
/ 03 декабря 2010

вы можете прикрепить ProgressBar в держатель макета ImageView,

RelativeLayout -> ImageView -> ProgressBar

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

вы можете сделать это в макете xml и надувать его позже программно, поэтому, когда вы запускаете / останавливаете процесс загрузки изображения, вы можете включить / выключить видимость ProgressBar

...