简单共享元素转换android的示例代码

时间:2016-02-11 22:34:02

标签: android

经过几个小时的尝试后,我仍然很难用" changeBounds"来进行共享元素转换。在Android中,正在移动的元素不是单击的按钮。在MainActivity.java中,这是我到目前为止尝试的代码:

public void onButtonNextClick(View v) {
    v.setTransitionName("transition1");
    ActivityOptionsCompat optionsCompat=ActivityOptionsCompat.makeSceneTransitionAnimation(this, v, v.getTransitionName());
    if (v.getId() == R.id.Bnext) {
        Intent i = new Intent(MainActivity.this, SecondActivity.class);
        startActivity(i, optionsCompat.toBundle());
    }
}

我非常感谢任何帮助。我想它只需要改变几行。

1 个答案:

答案 0 :(得分:0)

你正在做的是:

您告诉Android将Button设置为SharedElement

v.setTransitionName("transition1");
ActivityOptionsCompat optionsCompat=ActivityOptionsCompat.makeSceneTransitionAnimation(this, v, v.getTransitionName());

您正在v设置转换,即Button

您需要做什么:

假设您想要为ImageView设置动画,您可以执行以下操作:

public void onButtonNextClick(View view) {
    View imageView = findViewById(R.id.imageView);
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            imageView.setTransitionName(“<your-transition-name>”);
            ActivityOptionsCompat options = ActivityOptionsCompat.
                    makeSceneTransitionAnimation(this, imageView, imageView.getTransitionName());
            startActivity(intent, options.toBundle());
        }
        else {
            startActivity(intent);
        }
    }