如何使按钮上的文本显示并继续消失

时间:2016-05-09 07:59:29

标签: android multithreading

我有一个按钮,我希望它的文字显示1秒然后消失1秒,循环6秒,这是我试过的:

for(int i = 0 ; i < 6 ; i++) {
    button.setTextSize(18);
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    button.setTextSize(0);
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}
  • 首先看来按钮的文字大小变为36而不是18,

  • 第二个是它没有按照我的预期行事,从不显示文字,

  • 注意:从开头的文字大小为0。

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:3)

不是使用PendingIntent pendingIntent = PendingIntent.getBroadcast(getContext(), IdCount, intent, PendingIntent.FLAG_ONE_SHOT); alarmManager.setExact(AlarmManager.RTC_WAKEUP, FutureTimeMillis, pendingIntent); 阻止线程,而是可以使用Thread.sleep(1000)发布延迟后1秒钟使其显示并发布另一个以使其消失。

handler

答案 1 :(得分:3)

okey如你所说,你只想让你的TextView眨眼,这就是你能做的。

在名为&#34; anim&#34;的res下的文件夹上创建,现在在该文件下创建一个xml文件

blink.xml 并将此代码复制到其中。

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
     android:fromAlpha="0.0"
     android:toAlpha="1.0"
     android:duration="1000" 
     android:repeatMode="reverse"
     android:repeatCount="infinite" /> 
</set>

现在,在Java类中,只需将此动画应用于TextView

即可
Animation anim = AnimationUtils.loadAnimation(getActivity(),
                    R.anim.blink);
yourtextview.startAnimation(anim);

完成。

答案 2 :(得分:3)

这个简单的代码可以帮助你眨眼文本视图:

final String text = yourTextView.getText().toString();
TimerTask timerTask = new TimerTask() {
    @Override
    public void run() {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                if (yourTextView.getText().length() == 0) {
                    yourTextView.setText(text);
                } else {
                    yourTextView.setText("");
                }
            }
        });
    }
};
Timer timer = new Timer();
timer.scheduleAtFixedRate(timerTask,1000,1000);