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

来源:互联网 发布:sla切片软件 编辑:程序博客网 时间:2024/05/17 00:17

原文地址:http://blog.csdn.net/cnzx219/article/details/47157603
这一篇介绍两个可以兼容 4.x 的两个第三方方案,来实现 Activity 切换时实现共享视图元素的切换动画。

方案一:PreLollipopTransition

preview

首先在 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 中写如下代码:

@Overrideprotected 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;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_sub2);    exitTransition = ActivityTransition.with(getIntent()).to(findViewById(R.id.sub_imageView)).start(savedInstanceState);}@Overridepublic void onBackPressed() {    exitTransition.exit(this);}

PreLollipopTransition库地址:https://github.com/takahirom/PreLollipopTransition

方案二:ActivityOptionsICS

该项目已经停止维护!慎用!
ActivityOptionsICS库地址: https://github.com/tianzhijiexian/ActivityOptionsICS

0 0