刷卡时动画就像换页一样

时间:2013-12-20 07:10:19

标签: android

我有一个应用程序,我使用SimpleGestureFilter.java,它做的是在刷卡上调用正确的功能(左右双击......等)这里是代码的一部分

     @Override
    public boolean dispatchTouchEvent(MotionEvent me){
        // Call onTouchEvent of SimpleGestureFilter class
         this.detector.onTouchEvent(me);
       return super.dispatchTouchEvent(me);
    }
    public void onSwipe(int direction) {
      String str = "";

      switch (direction) {

      case SimpleGestureFilter.SWIPE_RIGHT : minusOne(); str = "Swipe Right";
                                               break;
      case SimpleGestureFilter.SWIPE_LEFT : plusOne(); str = "Swipe Left";
                                                     break;

      }

     }

所以我想在plusOne()被解析时或者其他一些函数执行某些操作并且它在同一个MainActivity.java类上提交意图时,我试图在事件恰好看起来像一个书页幻灯片,在屏幕之间进行一些过渡,它只是一个MainActivity屏幕

      Intent i = new Intent(this,MainActivity.class);
  i.putExtra(DBAdapter.KEY_pk_ymd, Integer.parseInt(dt));
  startActivityForResult(i,ACTIVITY_EDIT);

2 个答案:

答案 0 :(得分:4)

使用:push_left_in.xml

 <?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">    
 <translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="300"/>  
<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />  

和push_left_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">

<translate android:fromXDelta="0" android:toXDelta="-100%p" android:duration="300"/>
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300" />
</set>

所有xml都位于res / anim中,并且像这样被调用

    Intent i = new Intent(this,MainActivity.class);         
    startActivityForResult(i,ACTIVITY_EDIT);
    overridePendingTransition(R.anim.push_left_in,R.anim.push_left_out);    

答案 1 :(得分:1)

您可以在此处使用此Google代码:

https://code.google.com/p/android-3d-flip-view-transition

导入后,您只需使用:

AnimationFactory.flipTransition(viewFlipper, FlipDirection.LEFT_RIGHT);

你的好处,简单有效的lib。

编辑:

你的另一个选择是在你的意图中包含一个动画调用,但翻页会很难做到这一点。可以实现简单的滑动或滑动样式动画:

overridePendingTransition(int enterAnim,int exitAnim)

push_right_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="-100%p" android:toXDelta="0" android:duration="@android:integer/config_shortAnimTime"/>
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="@android:integer/config_shortAnimTime" />
</set>


   push_right_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="100%p" android:duration="@android:integer/config_shortAnimTime"/>
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="@android:integer/config_shortAnimTime" />
</set>

这比你追求的更接近吗?我在第一个答案中发布的lib非常容易使用并且确实产生了很好的效果。