activity切换动画和页面切换动画

jopen 10年前

Activity切换动画

要实现Activity切换动画需要靠overridePendingTransition来实现,里面有两个参数分别是进入Activity时的动画和离开Activity时的动画。

需要注意的是必须在StartActivity()或finish()之后立即调用

比如在MainActivity中有一个Button,点击Button后跳转到OtherActivity中代码如下:

</div> </div>
    Intent intent = new Intent(this, OtherActivity.class);        startActivity(intent);        this.overridePendingTransition(R.anim.enteralpha, R.anim.exitalpha);  

界面切换动画

界面切换动画要靠ViewFlipper来实现

    <ViewFlipper            android:id="@+id/view_flipper"            android:layout_width="match_parent"            android:layout_height="match_parent" >                    <!-- 第一页 -->                    <LinearLayout                android:layout_width="match_parent"                android:layout_height="match_parent"                android:background="#009900"                android:orientation="vertical" >                        <TextView                    android:layout_width="match_parent"                    android:layout_height="wrap_content"                    android:text="第一页" />            </LinearLayout>            <!-- 第二页 -->                    <LinearLayout                android:layout_width="match_parent"                android:layout_height="match_parent"                android:background="#ffff00"                android:orientation="vertical" >                        <TextView                    android:layout_width="match_parent"                    android:layout_height="wrap_content"                    android:text="第二页" />            </LinearLayout>        </ViewFlipper>  
</div> </div>
然后判断手指是向左还是向右滑动的
    @Override        public boolean onTouchEvent(MotionEvent event) {            // TODO Auto-generated method stub            if (event.getAction() == MotionEvent.ACTION_DOWN) {                startX = event.getX();                    } else if (event.getAction() == MotionEvent.ACTION_UP) {                float endX = event.getX();                if (endX > startX ) {                            flipper.showNext();// 显示下一页                        } else if (endX<startX) {                            flipper.showPrevious();// 显示前一页                }                return true;            }                    return super.onTouchEvent(event);        }  
</div> </div>
这样在手指左右滑动的时候切换页面。