首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

Android TabHos 滑动成效

2013-03-19 
Android TabHos 滑动效果import android.view.Viewimport android.view.animation.AccelerateInterpolato

Android TabHos 滑动效果

import android.view.View;    import android.view.animation.AccelerateInterpolator;    import android.view.animation.Animation;    import android.view.animation.TranslateAnimation;    import android.widget.TabHost;    import android.widget.TabHost.OnTabChangeListener;/** * A custom OnTabChangeListener that uses the TabHost its related to to fetch information about the current and previous * tabs. It uses this information to perform some custom animations that slide the tabs in and out from left and right. *  * @author Daniel Kvist *  */public class AnimatedTabHostListener implements OnTabChangeListener{    private static final int ANIMATION_TIME = 240;    private TabHost tabHost;    private View previousView;    private View currentView;    private int currentTab;    /**     * Constructor that takes the TabHost as a parameter and sets previousView to the currentView at instantiation     *      * @param tabHost     */    public AnimatedTabHostListener(TabHost tabHost)    {        this.tabHost = tabHost;        this.previousView = tabHost.getCurrentView();    }    /**     * When tabs change we fetch the current view that we are animating to and animate it and the previous view in the     * appropriate directions.     */    @Override    public void onTabChanged(String tabId)    {        currentView = tabHost.getCurrentView();        if (tabHost.getCurrentTab() > currentTab)        {            previousView.setAnimation(outToLeftAnimation());            currentView.setAnimation(inFromRightAnimation());        }        else        {            previousView.setAnimation(outToRightAnimation());            currentView.setAnimation(inFromLeftAnimation());        }        previousView = currentView;        currentTab = tabHost.getCurrentTab();    }    /**     * Custom animation that animates in from right     *      * @return Animation the Animation object     */    private Animation inFromRightAnimation()    {        Animation inFromRight = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 1.0f, Animation.RELATIVE_TO_PARENT, 0.0f,                Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f);        return setProperties(inFromRight);    }    /**     * Custom animation that animates out to the right     *      * @return Animation the Animation object     */    private Animation outToRightAnimation()    {        Animation outToRight = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 1.0f,                Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f);        return setProperties(outToRight);    }    /**     * Custom animation that animates in from left     *      * @return Animation the Animation object     */    private Animation inFromLeftAnimation()    {        Animation inFromLeft = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, -1.0f, Animation.RELATIVE_TO_PARENT, 0.0f,                Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f);        return setProperties(inFromLeft);    }    /**     * Custom animation that animates out to the left     *      * @return Animation the Animation object     */    private Animation outToLeftAnimation()    {        Animation outtoLeft = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, -1.0f,                Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f);        return setProperties(outtoLeft);    }    /**     * Helper method that sets some common properties     * @param animation the animation to give common properties     * @return the animation with common properties     */    private Animation setProperties(Animation animation)    {        animation.setDuration(ANIMATION_TIME);        animation.setInterpolator(new AccelerateInterpolator());        return animation;    }}转载自:http://ask.csdn.net/questions/1122

热点排行