Как создать программный пакет ProgressBar?

Мое приложение должно создавать небольшой ProgressBar программно. ProgressBar не имеет метода для установки стиля (я хочу небольшой ProgressBar). Конструктор может принимать AttributeSet, однако это интерфейс и требует от меня реализации набора функций. Есть ли способ установить ProgressBar в небольшой стиль? (Я не могу использовать XML для создания ProgressBar.)

Ответ 1

В большинстве случаев, если вы предоставляете AttributeSet вручную, вы должны использовать один из Android. К счастью, они выставили набор атрибутов, описывающий небольшой индикатор выполнения. Используйте этот код:

progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleSmall);

Ответ 2

Создайте XML файл макета в каталоге res/layout с нужным индикатором выполнения, содержащий все необходимые вам атрибуты:

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

Далее в классе Activity вы можете создать объект ProgressBar из этого макета:

LayoutInflater inflater = getLayoutInflater();
    ProgressBar bar = (ProgressBar ) inflater.inflate(R.layout.small_progress_bar, null);

где R.layout.small_progress_bar ссылается на ваш XML файл макета.

Можете ли вы по-прежнему не использовать xml файл?

Ответ 4

Полный код для добавления индикатора выполнения программно

private ProgressDialog mProgressDialog;
    mProgressDialog = new ProgressDialog(this);
    mProgressDialog.setMessage("Signing........");
    mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    mProgressDialog.setCancelable(false);

Вызов метода ниже для отображения строки

mProgressDialog.show();

вызов ниже, чтобы скрыть панель

mProgressDialog.dismiss();