Android アプリケーション開発では、プログレス バーを実装する主な方法が 2 つあります。システムが提供する ProgressBar コントロールを使用する方法と、プログレス バー ビューをカスタマイズする方法です。 ProgressBar コントロールはシンプルで使いやすく、ほとんどのシナリオに適しています。カスタム プログレス バーはより柔軟で、パーソナライズされた視覚効果を実現できます。 Downcodes のエディターは、ProgressBar コントロールの使用方法とプログレス バー ビューのカスタマイズ方法を詳細に説明し、開発者が Android プログレス バーの開発スキルをよりよく習得できるように、進捗更新監視メカニズムを紹介します。
Android アプリケーション開発では、プログレス バーを実装する主な方法が 2 つあります。ProgressBar コントロールを使用する方法と、プログレス バー ビューをカスタマイズする方法です。 ProgressBar コントロールは、Android が提供する進行状況を表示するコンポーネントで、簡単なレイアウト構成とコード制御で現在の進行状況を表示できます。カスタム進行状況バーを使用すると、開発者は進行状況表示のスタイルと動作をより柔軟に設計できるため、特別な視覚効果が必要なシナリオに適しています。
次に、ProgressBar コントロールを使用してプログレス バーを実装する方法を詳しく紹介します。この方法は、プログレス バーを実装する最も直接的で一般的な方法です。 ProgressBar コントロールは、確定モード (determinate) と不確定モード (indeterminate) の 2 つのモードをサポートします。決定モードでは、進行状況バーには進行状況値の変化に応じて対応する進行状況が表示されます。進行状況バーは通常、操作の完了率を表示するために使用されます。不確定モードでは、進行状況バーはアニメーションを継続し、通常は進行中の操作を示すために使用されますが、完了パーセンテージを明確に示すことができません。
レイアウト ファイルで ProgressBar を定義します。style 属性を @android:style/Widget.ProgressBar.horizontal に設定すると、進行状況バーを水平スタイルで表示し、アクティビティ内のコードを通じて進行状況バーの進行状況を制御できます。
レイアウトファイル(activity_mAIn.xml):
android:id=@+id/progressBar android:layout_width=match_parent android:layout_height=wrap_content style=@android:style/Widget.ProgressBar.horizontal アンドロイド:進行状況=25 /> アクティビティでの使用: public class MainActivity extends AppCompatActivity { @オーバーライド protected void onCreate(バンドル保存インスタンス状態) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ProgressBar progressBar = findViewById(R.id.progressBar); progressBar.setProgress(50); //進行状況を 50% に設定します。 } } 決定モードと同様に、ProgressBar はレイアウト ファイルで定義されますが、デフォルトではスタイル属性を指定する必要はありません。 android:id=@+id/progressBar2 android:layout_width=wrap_content android:layout_height=wrap_content /> アクティビティでは、操作が進行中であることを示すために表示または非表示を制御できます。 ProgressBar progressBar2 = findViewById(R.id.progressBar2); // 不定モードのプログレスバーを表示します progressBar2.setVisibility(View.VISIBLE); // 操作が完了したら進行状況バーを非表示にする progressBar2.setVisibility(View.GONE); カスタム プログレス バーを使用すると、View クラスを継承し、onDraw() メソッドをオーバーライドすることで、描画メソッドとプログレス バーの動作を完全に制御できます。必要に応じて、円、線、その他の進行状況バーの形状を描画でき、色やアニメーションなどをカスタマイズできます。 まず、View を継承するクラスを作成し、色や進行状況などのプログレス バーのプロパティを定義し、onDraw() メソッドでこれらのプロパティに基づいてプログレス バーを描画します。 public class CustomProgressBar extends View { プライベートペイントペイント; プライベート int 進行状況 = 0; public CustomProgressBar(Context context, AttributeSet attrs) { super(コンテキスト、属性); ペイント = 新しいペイント(); ペイント.setColor(Color.BLUE); } @オーバーライド protected void onDraw(Canvas Canvas) { super.onDraw(キャンバス); // 進行状況に基づいてここに進行状況バーを描画します } public void setProgress(int progress) { this.progress = 進行状況; validate(); // 再描画するようビューに通知します。 } } レイアウト ファイルでカスタムの進行状況バー コントロールを使用し、コードを通じて進行状況を設定します。 android:id=@+id/customProgressBar android:layout_width=match_parent android:layout_height=wrap_content /> アクティビティで進行状況を制御します。 CustomProgressBarcustomProgressBar = findViewById(R.id.customProgressBar); CustomProgressBar.setProgress(75); //カスタムプログレスバーの進行状況を 75% に設定します。 ProgressBar コントロールを使用する場合でも、カスタム プログレス バーを使用する場合でも、進行状況の更新の監視メカニズムを実装できます。これにより、進行状況が変化したときに、特定のビューの表示または非表示、テキスト情報の更新など、特定の操作を実行できます。 ProgressBar には進行状況の変更に対してリスナーを設定する直接的な方法はありませんが、進行状況の設定の前後にコードを追加することで間接的にリスニング効果を得ることができます。 // ファイルをダウンロードするシナリオであると仮定します ProgressBar progressBar = findViewById(R.id.progressBar); int currentProgress = 0; //ファイルのダウンロード進行状況の更新 現在の進行状況 += 10; progressBar.setProgress(currentProgress); // currentProgress の値に基づいて、対応する操作をここで実行します カスタム進行状況バーの実装では、進行状況を設定するメソッドに進行状況の変更の監視ロジックを直接追加できます。 public void setProgress(int progress) { this.progress = 進行状況; validate(); // 再描画するようビューに通知します。 if (this.progressListener != null) { this.progressListener.onProgressUpdate(進行状況); } } このように、アプリケーションに進行状況バーを実装すると、操作の進行状況をユーザーに表示できるだけでなく、進行状況に基づいて対応するビジネス ロジックを実行できるため、ユーザー エクスペリエンスが向上します。 質問: Android にプログレスバーコンポーネントを追加するにはどうすればよいですか? 回答: Android アプリに進行状況バーを実装するには、次の手順に従います。 Q: Android でプログレス バー アニメーションを実装するにはどうすればよいですか? 回答: プログレスバーのアニメーション効果を実現するには、次の方法を試すことができます。 質問: Android でさまざまなスタイルの進行状況バーを実装するにはどうすればよいですか? 回答: さまざまなスタイルの進行状況バーを実装するには、次の 2 つの方法を検討できます。 このチュートリアルが Android のプログレス バーの理解と使用に役立つことを願っています。 Downcodes のエディターは今後も Android 開発スキルと経験の共有をさらに提供していきますので、ご期待ください。不確定モードでの ProgressBar の使用
2. 進行状況バーの表示をカスタマイズする
カスタムプログレスバークラスを作成する
レイアウトでカスタム進行状況バーを使用する
3. 進捗状況の更新監視
ProgressBar のリスナーを設定する
カスタムプログレスバーの進行状況監視
関連する FAQ: