Sim, API level 26
está obsoleto. Em vez disso, você pode usar progressBar
.
Para criá-lo programaticamente:
Primeiro, obtenha uma referência ao layout raiz
RelativeLayout layout = findViewById(R.id.display); //specify here Root layout Id
ou
RelativeLayout layout = findViewById(this);
Em seguida, adicione a barra de progresso
progressBar = new ProgressBar(youractivity.this, null, android.R.attr.progressBarStyleLarge);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(100, 100);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
layout.addView(progressBar, params);
Para mostrar a barra de progresso
progressBar.setVisibility(View.VISIBLE);
Para ocultar a barra de progresso
progressBar.setVisibility(View.GONE);
Para desativar a interação do usuário, você só precisa adicionar o seguinte código
getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
Para recuperar a interação do usuário, basta adicionar o seguinte código
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
Apenas para referência futura, altere android.R.attr.progressBarStyleSmall
para android.R.attr.progressBarStyleHorizontal
.
O código abaixo funciona apenas acima API level 21
progressBar.setProgressTintList(ColorStateList.valueOf(Color.RED));
Para criá-lo via xml:
<ProgressBar
android:id="@+id/progressbar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:indeterminate="true"
android:max="100"
android:backgroundTint="@color/white"
android:layout_below="@+id/framelauout"
android:indeterminateTint="#1a09d6"
android:layout_marginTop="-7dp"/>
Na sua atividade
progressBar = (ProgressBar) findViewById(R.id.progressbar);
Mostrar / ocultar a barra de progresso é o mesmo
progressBar.setVisibility(View.VISIBLE); // To show the ProgressBar
progressBar.setVisibility(View.INVISIBLE); // To hide the ProgressBar
Aqui está uma imagem de exemplo de como seria:
Para mais detalhes:
1. Referência um
2. Referência dois