Android17及以下如何使用动画?
How to use animation in Android 17 and below?
我想在我的应用程序中使用动画,我写了下面的代码。但这代码 运行 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 及以下?谢谢大家 <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();
.
我想在我的应用程序中使用动画,我写了下面的代码。但这代码 运行 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 及以下?谢谢大家 <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();
.