经过几个小时的尝试后,我仍然很难用" 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());
}
}
我非常感谢任何帮助。我想它只需要改变几行。
答案 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);
}
}