目前 Android 上并没有提供类似 iOS 的视图切换效果,所以很多类似 iOS 自带的炫酷的视图切换效果要实现起来比较麻烦,这里将会介绍一个 Android 上的比较好用的视图切换库,可以媲美 iOS 效果。
先上图,这里是一个官方的 demo,请看下图:
SwitchLayout 简介:
Activity 视图切换库,同时兼容View的动画
基础特效 15 个,每个可扩展 8 个, 大概120 中特效
可设置进入和退出动画,可控制动画结束后操作
SwitchLayout 的用法:
SwitchLayout 的配置
导入 jar 包或设置好依赖库
每个Activity 设置好主题 theme
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
<p>版权声明:本文为博主原创文章,未经博主允许不得转载。</p>