我想在我的应用程序中使用动画,然后在下面编写代码。但是这些代码在 android 18及以上上运行!但是我的应用程序 minSDK 有 14 ,这个动画在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及更低版本上运行此动画?谢谢所有&lt; 3
答案 0 :(得分:0)
必须将您的java类扩展为AppCompatActivity
执行此操作将导入与Activity相同的android.support.v7.app.AppCompatActivity;只有它允许支持向后兼容。
快乐的编码。
答案 1 :(得分:0)
根据您的 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();