在我的android應用程序中,我試圖展示一個「Loading ...」文本,它將每隔100 ms更改一次。每100毫秒後它會增加一個點。所以首先它會像「加載」。並且在接下來的100毫秒內將會是「正在加載」。當它將是「正在加載...」時,該過程將終止並再次從單詞開始。它將持續到3500毫秒。這將非常像進度條。如何在android中製作文字動畫?
我希望我能夠解釋這個問題。
如何解決此問題?請幫忙。
在我的android應用程序中,我試圖展示一個「Loading ...」文本,它將每隔100 ms更改一次。每100毫秒後它會增加一個點。所以首先它會像「加載」。並且在接下來的100毫秒內將會是「正在加載」。當它將是「正在加載...」時,該過程將終止並再次從單詞開始。它將持續到3500毫秒。這將非常像進度條。如何在android中製作文字動畫?
我希望我能夠解釋這個問題。
如何解決此問題?請幫忙。
不是最好的答案,但它的工作原理。
Handler handler = new Handler();
for (int i = 100; i <= 3500; i=i+100) {
handler.postDelayed(new Runnable() {
@Override
public void run() {
if(i%300 == 0){
textView.setText("Loading.");
}else if(i%200 == 0){
textView.setText("Loading..");
}else if(i%100 == 0){
textView.setText("Loading...");
}
}
}, i);
}
A CountdownTimer
似乎適合,更改onTick中的文本。
您應該使用AsyncTask。這個類意在做長時間運行的後臺任務,它們會自動發佈更新並在UI線程上運行。
在doInBackground
,有你的循環,然後將調用publishProgress
這將調用onProgressUpdate
每100ms與新值。
這將在後臺完成,onProgressUpdate將自動在UI線程上運行。
東西上的行:
private class ShowLoading extends AsyncTask<Void, Integer, Void> {
@Override
protected Void doInBackground(Void... params) {
for (int i = 0; i < 3500; i++){
publishProgress(i);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
@Override
protected void onProgressUpdate(Integer... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
if (values[0]%3 == 0){
textview.setText ("Loading.");
} else if (values[0]%3 == 1){
textview.setText ("Loading..");
} else if (values[0]%3 == 2){
textview.setText ("Loading..");
}
}
}
這是一個無限循環('I = 1 + 100'):) – MByD 2012-03-29 15:45:12
糟糕!抱歉。錯字。我的意思是i = i + 100;改變。 – Rajkiran 2012-03-29 15:47:49
我修改了一點點..但它的工作.. – 2012-03-30 05:19:05