sli*_*ull 11 android android-animation
我有一个很好的PopupWindow,我想用动画出现.我是这样做的:
popup.setAnimationStyle(R.anim.appear);
popup.showAtLocation(popupMenuLayout, gravity, offsetX, offsetY);
Run Code Online (Sandbox Code Playgroud)
然后我设置了一个用于更改动画的监听器:
popup.setOnDismissListener(new PopupWindow.OnDismissListener(){
@Override
public void onDismiss(){
popup.setAnimationStyle(R.anim.disappear);
}
});
Run Code Online (Sandbox Code Playgroud)
但是,嘿,它不会起作用.res/anim /似乎都没有:
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="100%"
android:toYDelta="0"
android:duration="1000"
/>
Run Code Online (Sandbox Code Playgroud)
也不是res/anim /消失:
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="0"
android:toYDelta="100%"
android:duration="1000"
/>
Run Code Online (Sandbox Code Playgroud)
有线索吗?
He *_*ing 51
实际上,PopupWindow.setAnimationStyle期望一个有2个条目的样式.你需要有两个xmls,每个包含一个<set>,一个用于显示,另一个用于隐藏窗口.完成后,将以下部分放入values/styles.xml:
<style name="AnimationPopup">
<item name="android:windowEnterAnimation">@anim/popup_show</item>
<item name="android:windowExitAnimation">@anim/popup_hide</item>
</style>
Run Code Online (Sandbox Code Playgroud)
并将您的动画样式设置为R.style.AnimationPopup.那就行了.
我从https://github.com/lorensiuswlt/NewQuickAction3D获得了这些信息,文档似乎没有提到它.
更新:
2012年Android SDK的更新改变了XML语法.原来@android:windowEnterAnimation现在变成了android:windowEnterAnimation.所以这个答案会相应更新.
| 归档时间: |
|
| 查看次数: |
12832 次 |
| 最近记录: |