Android:文字淡入淡出

编程入门 行业动态 更新时间:2024-10-25 14:22:51
本文介绍了Android:文字淡入淡出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我已经阅读了这个stackoverflow问题和答案,并尝试实现文本淡入和淡出:

I've read this stackoverflow question and answer and tried to implement a text fade in and out:

如何在Android中淡入淡出文本?

这是我的实现:

public class ShowActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_show); final TextView mSwitcher = (TextView) findViewById(R.id.textFade); mSwitcher.setText("old text"); final Animation in = new AlphaAnimation(0.0f, 1.0f); in.setDuration(5000); final Animation out = new AlphaAnimation(1.0f, 0.0f); out.setDuration(5000); out.setAnimationListener(new AnimationListener() { @Override public void onAnimationEnd(Animation animation) { mSwitcher.setText("New Text"); mSwitcher.startAnimation(in); } @Override public void onAnimationRepeat(Animation arg0) { // TODO Auto-generated method stub } @Override public void onAnimationStart(Animation arg0) { // TODO Auto-generated method stub } }); mSwitcher.startAnimation(out); mSwitcher.setText("Text 1."); mSwitcher.startAnimation(in); mSwitcher.startAnimation(out); mSwitcher.setText("Text 2."); mSwitcher.startAnimation(in); } }

问题是,只有文字2出现,它只会淡入而不淡出。可能有什么问题?

The problem is, that only text 2 appears and it only fade in and not fade out. What could be wrong?

推荐答案

问题是你每次开始淡出动画时都会立即开始淡出动画。

The problem is that you are starting a fade in animation immediately every time you start a fade out animation.

我能够修改你的代码并得到一个简单的例子,这里是代码:

I was able to modify your code and get a simple example working, here's the code:

import android.os.Handler; public class ShowActivity extends Activity { Handler handler; TextView mSwitcher; Animation in; Animation out; int fadeCount; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_show); fadeCount = 0; handler = new Handler(); mSwitcher = (TextView) findViewById(R.id.textView); mSwitcher.setText("old text"); in = new AlphaAnimation(0.0f, 1.0f); in.setDuration(5000); out = new AlphaAnimation(1.0f, 0.0f); out.setDuration(5000); out.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationEnd(Animation animation) { fadeCount++; if (fadeCount == 3){ mSwitcher.setText(""); Intent i = new Intent(getApplication() , MainActivity.class); startActivity(i); } else { if (fadeCount == 1) { mSwitcher.setText("Text 2."); } else { mSwitcher.setText("New Text"); } mSwitcher.startAnimation(in); handler.postDelayed(mFadeOut, 5000); } } @Override public void onAnimationRepeat(Animation arg0) { // TODO Auto-generated method stub } @Override public void onAnimationStart(Animation arg0) { // TODO Auto-generated method stub } }); //mSwitcher.startAnimation(out); mSwitcher.setText("Text 1."); mSwitcher.startAnimation(in); /* mSwitcher.startAnimation(out); mSwitcher.setText("Text 2."); mSwitcher.startAnimation(in); */ handler.postDelayed(mFadeOut, 5000); } private Runnable mFadeOut =new Runnable(){ @Override public void run() { //Speed up the last fade-out so that the Activity opens faster if (fadeCount == 2){ out.setDuration(2000); } mSwitcher.startAnimation(out); } }; }

更多推荐

Android:文字淡入淡出

本文发布于:2023-11-11 07:59:38,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1577825.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文字   Android

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!