【问题标题】:Android TextView fade in animation not workingAndroid TextView淡入动画不起作用
【发布时间】:2016-11-04 04:21:03
【问题描述】:

这是动画 xml 中的内容:

android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="4500"

在这里我称之为:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
    setContentView(R.layout.prayerlayout);

    txt = (TextView) findViewById(R.id.textView2); 
    txt.setText(getString(R.string.eighth));

//apply animation 
     fade1 = AnimationUtils.loadAnimation(this, R.anim.fade10);
     txt.startAnimation(fade1);
 }

问题是文本在动画期间没有出现,然后突然出现。在旧版本的android中我没有注意到这个问题。它工作正常,但对于 Lollipop 或 Jellybeans 则不起作用。谢谢你的帮助。

【问题讨论】:

    标签: android animation textview


    【解决方案1】:

    原来我的文字太长导致淡入动画不起作用。我在 scrollView 上应用了动画,它达到了我想要的效果。

    【讨论】:

    • 您能否提供有关导致动画无法工作的文本长度的更多信息?为什么会这样?
    • 大约 700 个字,超过 5000 个字符。我不知道为什么设备的处理能力或 android 操作系统软件无法处理大文本动画。我没有在最近的 android 版本上对其进行测试,所以他们可能修复了这个问题。
    【解决方案2】:

    我在淡入 XML 中有这个。

     <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:fillAfter="true">
        <alpha
            android:duration="1000"
            android:fromAlpha="0.0"
            android:interpolator="@android:anim/accelerate_interpolator"
            android:toAlpha="1.0" />
    </set>
    

    还有代码

    public class MainActivity extends Activity {
        Animation animFadein,animFadeout;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
            setContentView(R.layout.activity_main);
    
            animFadein = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fade_in);
            animFadeout = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fade_out);
            Update();
        } 
    
        public void Update(){
            TextView lblEstadoPuerta = (TextView) findViewById(R.id.lblEstadoPuerta);
            ImageButton btnabrirpuerta = (ImageButton) findViewById(R.id.btndoorstate);
    
            btnabrirpuerta.startAnimation(animFadeout);
            btnabrirpuerta.setVisibility(View.GONE);
            btnabrirpuerta.setImageResource(R.drawable.go_down);
            btnabrirpuerta.setVisibility(View.VISIBLE);
            btnabrirpuerta.startAnimation(animFadein);
        }
    }
    

    需要导入这个..

    import android.view.animation.Animation;
    import android.view.animation.AnimationUtils;
    

    【讨论】:

    • 感谢您的回答,我很惊讶这对某些人有效而对其他人无效,我的代码基本相同,但 textview 没有动画,只是突然出现。
    【解决方案3】:

    你添加了一些插值器吗? 您可以阅读以下内容: http://developer.android.com/intl/es/guide/topics/resources/animation-resource.html

    你的 fade10.xml 动画文件

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    <alpha
        android:duration="4500"
        android:fromAlpha="0.0"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:toAlpha="1.0" />
    </set>
    

    您的活动文件

    public class FadeActivity extends Activity {
    
        private TextView txt;
        private Animation fade1;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            setContentView(R.layout.prayerlayout);
    
            txt = (TextView) findViewById(R.id.textView2);
            txt.setText(getString(R.string.eighth));
    
            //apply animation
            fade1 = AnimationUtils.loadAnimation(this, R.anim.fade10);
            txt.startAnimation(fade1);
        }
    }
    

    【讨论】:

    • 感谢指点插值器的东西,我添加了它,尝试了其他插值器,仍然没有效果。 textview 突然出现,没有动画。
    猜你喜欢
    • 2020-12-06
    • 2012-09-25
    • 1970-01-01
    • 2019-09-24
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    • 1970-01-01
    相关资源
    最近更新 更多