【问题标题】:How to highlight text background color for duration?[android]如何在持续时间内突出显示文本背景颜色?[android]
【发布时间】:2015-08-18 15:13:43
【问题描述】:

我正在为儿童制作叙事应用程序,每个单词都被突出显示和发音。有些单词需要更长的时间才能发音,所以我需要让它们突出显示一段时间。

    play = (ImageButton)findViewById(R.id.play);
    TextView grandmom = (TextView)findViewbyId(R.id.grandmom) ;

    play.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if(MotionEvent.ACTION_DOWN == event.getAction()){
                grandmom.setBackgroundColor(Color.YELLOW);
                return  true;
            }
        }
    });

上面的代码只是突出显示了这个词并让它永远保持黄色。如何点亮几毫秒后恢复正常?

【问题讨论】:

    标签: android textview highlighting duration


    【解决方案1】:

    您可以使用AsyncTask 来播放您的声音。 在onPreExecute() 中将背景更改为黄色,并在onPostExecute() 中将其恢复为正常

    这样您就不必担心播放声音所需的时间。

    【讨论】:

    • 我每个活动大约有 10 个单词,我可以一个接一个地运行 10 个异步任务吗?
    • 是的,您可以一个接一个地使用任意数量的它们,没问题。在第一个的 `onPostExecute()' 中开始下一个 AsyncTask。从一个地方开始所有这些将一个接一个地一起开始。
    【解决方案2】:

    在您的MediaPlayer 上使用监听器,在OnPreparedListener 上突出显示并在OnCompletionListener 上恢复正常

    【讨论】:

      【解决方案3】:

      使用TimerTask,安排它在几毫秒后执行,并在该任务内,时间过去后,将backGrounColor再次更改为原始颜色

      您还可以创建一个函数,根据字符串的长度告诉您将高亮保持多长时间,并使用该函数来确定何时安排关闭高亮的任务

      【讨论】:

        猜你喜欢
        • 2012-12-21
        • 1970-01-01
        • 2010-12-03
        • 2014-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-09
        相关资源
        最近更新 更多