Android中Activity切换时共享视图元素的切换动画(4.x兼容提案)

Android中Activity切换时共享视图元素的切换动画(4.x兼容方案)

同时发布在我的博客

点此进入

开始

上一篇讲了使用 Google 的 AppCompat-v7 来实现 Activity 切换时实现共享视图元素的切换动画。这一篇介绍两个可以兼容 4.x 的两个第三方方案。

上一篇:Android中Activity切换时共享视图元素的切换动画(5.0以上)

方案一:PreLollipopTransition

Android中Activity切换时共享视图元素的切换动画(4.x兼容提案)

首先在 build.gradle 配置文件添加这个库依赖

dependencies {
    compile 'com.kogitune:pre-lollipop-activity-transition:1.0.0'
}

首先是启动的 Activity 中

findViewById(R.id.imageView).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        final Intent intent = new Intent(MainActivity.this, SubActivity.class);
        ActivityTransitionLauncher.with(MainActivity.this).from(v).launch(intent);
    }
});

在接收这个 Intent 的 Activity 中写如下代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sub);
    ActivityTransition.with(getIntent()).to(findViewById(R.id.sub_imageView)).start(savedInstanceState);
}

退出动画的实现

private ExitActivityTransition exitTransition;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sub2);
    exitTransition = ActivityTransition.with(getIntent()).to(findViewById(R.id.sub_imageView)).start(savedInstanceState);
}
@Override
public void onBackPressed() {
    exitTransition.exit(this);
}

伸手党的福利:点我跳转代码地址

方案二:ActivityOptionsICS

不再详细描述了

伸手党的福利:点我跳转代码地址

版权声明:本文为博主原创文章,未经博主允许不得转载。