Как отобразить анимацию прогресса загрузки для некоторого изображения?

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

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

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

Спасибо.

Ответ 1

Вы имеете в виду как spinner?

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

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

<!--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

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

Ответ 2

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

RelativeLayout  - > ImageView    - > ProgressBar

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

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