我正在为 android 制作一个文字游戏,基本上每当用户输入正确的内容时,我都会更新应用程序中的分数,我想在屏幕上显示分数以使其显示大然后慢慢淡出并得到更小,我该怎么做?是否可以在 AsyncTask 类中实现它?这是我用来检查输入的单词是否正确的方法。
public class checkWord extends AsyncTask<String, String, Void> {
private String c;
@Override
protected Void doInBackground(String... arg0) {
int size = correctWords.size();
String word = arg0[0];
for (int i = 0; i < size; i++) {
if (word.equalsIgnoreCase(correctWords.get(i))) {
publishProgress("bad");
}
}
try {
c = bufferedReader.readLine();
while (c != null && !c.equalsIgnoreCase(word)) {
c = bufferedReader.readLine();
}
if (c != null) {
correctWords.add(0, word);
score += word.length();
publishProgress("good");
} else {
incorrectWords.add(0, word);
publishProgress("bad");
}
} catch (IOException e) {
e.printStackTrace();
}
closeWordFile();
openWordFile();
return null;
}
那么无论如何我可以将参数传递给 publishProgress 以便在 onProgressUpdate 中绘制他们得到的分数,例如 +3 然后让它淡出?这是我的 onProgressUpdate 我在计时器中添加秒数并播放声音,如果它是一个有效的单词或不是
@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
if (values[0].matches("bad"))
failureSound.start();
if (values[0].matches("good")) {
successSound.start();
if (countDownTimer != null) {
countDownTimer.cancel();
startTimer(countDownTime + c.length() / 2);
}
}
}