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

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

4 ответов


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

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

создайте 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);

где макет Р..small_progress_bar ссылки на файл XML макета.

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


активности.java

  progressBar = (ProgressBar) findViewById(R.id.progressbar);
 `progressBar.setVisibility(View.VISIBLE);`// To Show ProgressBar 
 `progressBar.setVisibility(View.INVISIBLE);` //To Hide ProgressBar

регистрация здесь ProgressDialog устарел.Какой альтернативный вариант использовать?


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

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

вызов ниже метода, чтобы показать bar

mProgressDialog.show();

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

mProgressDialog.dismiss();