AndroidでProgressBarの更新をアニメーション化する
2023-09-20 20:53:50
質問
私のアプリケーションではProgressBarを使用しています。
AsyncTask
. これまでのところ良好です。
私がやりたいことは、進捗状況の更新をアニメーション化することで、単に値へ "jump" するのではなく、スムーズに値へ移動するようにすることです。
私は以下のコードを実行してそうすることを試みました。
this.runOnUiThread(new Runnable() {
@Override
public void run() {
while (progressBar.getProgress() < progress) {
progressBar.incrementProgressBy(1);
progressBar.invalidate();
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
});
問題は、プログレスバーが最終的な値(プログレス変数)を終了するまで、状態を更新しないことです。その間の状態はすべて画面上に表示されません。 progressBar.invalidate()を呼び出しても、解決しませんでした。
何かアイデアはありますか?ありがとうございます!
どのように解決するのですか?
アンドロイドアニメーションを使っています。
public class ProgressBarAnimation extends Animation{
private ProgressBar progressBar;
private float from;
private float to;
public ProgressBarAnimation(ProgressBar progressBar, float from, float to) {
super();
this.progressBar = progressBar;
this.from = from;
this.to = to;
}
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
super.applyTransformation(interpolatedTime, t);
float value = from + (to - from) * interpolatedTime;
progressBar.setProgress((int) value);
}
}
というように呼び出します。
ProgressBarAnimation anim = new ProgressBarAnimation(progress, from, to);
anim.setDuration(1000);
progress.startAnimation(anim);
注意:もしfromとtoの値が低すぎて滑らかなアニメーションが得られない場合は、100程度を乗算してください。そうする場合、setMax(...)も同様に掛けることを忘れないでください。
関連
-
[解決済み] 他のスレッドからGUIを更新するにはどうすればよいですか?
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み] AndroidでPythonを実行する方法はありますか?
-
[解決済み] EclipseのAndroidプラグインで "Debug certificate expired "エラーが発生する。
-
[解決済み] 制約条件の変更をアニメーションで表現するには?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み] Gradleでビルドタイプを使用し、ContentProviderを使用する同じアプリを1つのデバイスで実行する。
-
[解決済み] EditTextの右側のDrawableにonClickListenerを設定する [重複] [重複
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] AndroidにおけるViewPager2の適切な実装
-
[解決済み] Nexus 4でUSBデバッグモードを見つける方法とオンにする方法
-
[解決済み] TabLayoutに対応したandroidデザインでタブテキストのフォントを変更する
-
[解決済み] 非推奨のandroid.support.v4.app.ActionBarDrawerToggleの置き換え方法
-
[解決済み] PendingIntentの "requestCode "は何に使うのですか?
-
[解決済み] edittextのテキストがメールアドレスかどうかを確認するには?
-
[解決済み] FABアイコンの色を設定する
-
[解決済み] Androidの環境設定。ユーザーが環境設定画面を使用していない場合、デフォルト値を読み込むにはどうすればよいですか?
-
[解決済み] Travis.yml ./gradlew : パーミッションが拒否されました。
-
[解決済み] HttpURLConnectionを使ったPOSTによるファイル送信