我有一个很好的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)
有线索吗?
我想制作一个动画,但能够按照我想要的次数播放它.现在它只是第一次播放.
.XML:
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/p1_ch1" android:oneshot="true">
<item
android:drawable="@drawable/p1_ch1_5"
android:duration="500"/>
<item
android:drawable="@drawable/p1_ch1_4"
android:duration="1000"/>
<item
android:drawable="@drawable/p1_ch1_5"
android:duration="500"/>
</animation-list>
Run Code Online (Sandbox Code Playgroud)
的.java:
public void handler_p1_ch1_5 (View target){
ImageView iv = (ImageView)findViewById(R.id.p1_ch1_5);
AnimationDrawable aw = (AnimationDrawable)iv.getBackground();
aw.start();
}
Run Code Online (Sandbox Code Playgroud) 我使用的是ViewAnimator(父类的ViewFlipper)做出某种互动的书.层次结构大致如下:
<ViewAnimator>
<include layout="@layout/p0" />
<include layout="@layout/p1" />
<include layout="@layout/p2" />
...
</ViewAnimator>
Run Code Online (Sandbox Code Playgroud)
所以这本书的页面都在ViewAnimator里面.每个页面都有一个FrameLayout,其中有多层动画ImageViews,TextViews,Buttons ......结果太多了.通过viewAnimator.showNext()显示书籍的新页面可能需要几秒钟.所有这些时间都花在了ImageView.onDraw()-Traceview上.
- ViewAnimator的任何替代布局(ViewPager,ViewGroup的其他实现......)会改进吗?
- 有没有办法预加载 ViewFlipper/ViewAnimator /其他将显示的视图?(这样书的下一页总是准备好并且在记忆中很开心)
- 我应该使用Canvas还是GLSurfaceView?(不能使用动画框架)
我被困了......你能帮忙吗?