我的 ChordActivity 应用程序在 LinearLayout 中有一组按钮。单击按钮时,我希望 TextToSpeech 引擎说出单击的按钮的名称(例如 Minor 7th ),这工作正常。我还希望出现“弹出然后返回”按钮的动画,我也有这个动画。问题是,无论我如何安排代码,语音都是先发生的,然后是动画。我希望它们同时发生。我知道 TextToSpeech 有自己的消息队列,所以我假设如果我使用 runnable 来制作动画,我可以让语音和动画同时发生,但事实并非如此。然后我退出了可运行文件,现在有以下代码。有人对此有解决方案吗?非常感激。
private void speakChordMessage(View v) {
image = (ImageView) v;
image.startAnimation(animScale);
chordTTS.playSilence(2000, TextToSpeech.QUEUE_FLUSH, null);
chordTTS.speak(str1, TextToSpeech.QUEUE_FLUSH, null);
while (chordTTS.isSpeaking()) {
}
}
animscale.xml 代码:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator" >
<scale
android:duration="200"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:pivotX="100%"
android:pivotY="0%"
android:repeatCount="1"
android:repeatMode="reverse"
android:startOffset="0"
android:toXScale="1.3"
android:toYScale="1.25" />
</set>