Android17及以下如何使用动画?

How to use animation in Android 17 and below?

我想在我的应用程序中使用动画,我写了下面的代码。但这代码 运行 android 18 岁及以上 !但我的应用程序 minSDK14,此动画不会显示在 android 17 及以下!只显示 api 18 及以上!!!

我的代码:

public void disableSearch() {
    searchEnabled = false;
    Animation out = AnimationUtils.loadAnimation(getContext(), R.anim.fade_out);
    Animation in = AnimationUtils.loadAnimation(getContext(), R.anim.fade_in_right);
    out.setAnimationListener(this);
    searchIcon.setVisibility(VISIBLE);
    inputContainer.startAnimation(out);
    searchIcon.startAnimation(in);

    if (listenerExists())
        onSearchActionListener.onSearchStateChanged(false);
    if (suggestionsVisible) animateLastRequests(getListHeight(false), 0);
}

/**
 * Shows search input and close arrow
 */
public void enableSearch() {
    adapter.notifyDataSetChanged();
    searchEnabled = true;
    Animation left_in = AnimationUtils.loadAnimation(getContext(), R.anim.fade_in_left);
    Animation left_out = AnimationUtils.loadAnimation(getContext(), R.anim.fade_out_left);
    left_in.setAnimationListener(this);
    inputContainer.setVisibility(VISIBLE);
    inputContainer.startAnimation(left_in);
    if (listenerExists()) {
        onSearchActionListener.onSearchStateChanged(true);
    }
    searchIcon.startAnimation(left_out);
}

我的动画:

fadeinLeft.xml
    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:interpolator="@android:anim/decelerate_interpolator">
        <translate android:fromXDelta="70" android:toXDelta="0" android:duration="150"/>
        <alpha android:fromAlpha="0" android:toAlpha="1" android:duration="200"/>
    </set>

    FadeOut.xml
        <?xml version="1.0" encoding="utf-8"?>
        <set xmlns:android="http://schemas.android.com/apk/res/android">
            <alpha
                android:duration="250"
                android:fromAlpha="1"
                android:toAlpha="0"/>
        </set>

如何解决此问题以及 运行 此动画在 android 17 及以下?谢谢大家 <3

必须将您的 java class 扩展到 AppCompatActivity

这样做会导入 android.support.v7.app.AppCompatActivity,与 Activity 相同;只有它允许支持向后兼容。

编码愉快。

根据您的 FadeOut.xml 查看动画如下所示:

yourView.animate().alpha(0).start();

根据您的 fadeinLeft.xml 查看动画如下所示:

yourView.animate().alpha(1.0).x(0).start();

并且在这个动画中,你的动画 xml 中的 from 值应该在你调用上面的动画行之前设置。

例如:如果你想从0到1开始alpha动画,而你当前的视图alpha是1,那么你应该在做动画之前做yourView.setAlpha(0); yourView.animate().alpha(1).start();.