Android视图切换库的使用之SwitchLayout的用法及实际应用案例

目前 Android 上并没有提供类似 iOS 的视图切换效果,所以很多类似 iOS 自带的炫酷的视图切换效果要实现起来比较麻烦,这里将会介绍一个 Android 上的比较好用的视图切换库,可以媲美 iOS 效果。

先上图,这里是一个官方的 demo,请看下图:

这里写图片描述

SwitchLayout 简介:

  1. Activity 视图切换库,同时兼容View的动画

  2. 基础特效 15 个,每个可扩展 8 个, 大概120 中特效

  3. 可设置进入和退出动画,可控制动画结束后操作

SwitchLayout 的用法:

  1. SwitchLayout 的配置

    导入 jar 包或设置好依赖库

    每个Activity 设置好主题 theme

  2. SwitchLayout 的基本特效引用:

    直接调用选择特效或通过实现接口的方式调用

这里写一个小demo ,讲述一下SwitchLayout的用法。先上图:

这里写图片描述

这里就讲主要的实现代码,布局的因为很简单,看效果就知道了,布局有两个,然后是主工程代码:

MainActivity.java

public class MainActivity extends Activity {
    private Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = (Button) this.findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                Intent intent = new Intent(MainActivity.this,
                        SecondActivity.class);
                startActivity(intent);
            }
        });
    }

}

SecondActivity.java

public class SecondActivity extends Activity implements SwichLayoutInterFace {
    private ImageView iv_img;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        setEnterSwichLayout();
        iv_img = (ImageView) this.findViewById(R.id.iv_img);
        SwitchLayout.get3DRotateFromLeft(iv_img, false, null);
        //设置点击监听事件,点击ImageViewe后,单个控件发生的效果
        iv_img.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                SwitchLayout.get3DRotateFromLeft(iv_img, false, null);
            }
        });
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            setExitSwichLayout();
        }
        return true;
    }

    //第二个Activity进入时的动画效果
    @Override
    public void setEnterSwichLayout() {
        SwitchLayout.getSlideFromLeft(this, false, null);
    }

    //第二个Activity退出时的动画效果
    @Override
    public void setExitSwichLayout() {
        SwitchLayout.getSlideToLeft(this, true,
                BaseEffects.getMoreQuickEffect());
    }
}

设置效果时间

MyApplication.java

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();
        //设置动画效果时间
        SwitchLayout.animDuration = 300;
    }
}

项目的相关源码链接:http://download.csdn.net/detail/qq220011qq/8859491

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值