我一直在尝试使用L开发者预览版附带的新奇特动画,但我遇到了很多困难。特别是,我没有看到任何花哨的动画。我试图使用爆炸退出过渡。这是代码:
public class ActivityA extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// inside your activity
getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
// set an exit transition
getWindow().setExitTransition(new Explode());
setContentView(R.layout.activity_a);
// Find our button and add our click handler
Button button = (Button)findViewById(R.id.buttonA);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Transition to activity B
Intent intent = new Intent(ActivityA.this, ActivityB.class);
startActivity(intent);
}
});
}
}
答案 0 :(得分:12)
使用以下语句,而不是使用startActivity(intent);
启动另一个活动。
startActivity(intent,ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
我开始了另一项活动,如上所述,它对我有用。
在谷歌文档Defining Custom Animations中说如下。
答案 1 :(得分:3)
解决了问题 - 你需要
getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
也要调用您正在转换的活动!
答案 2 :(得分:0)
试试这个。
public class MyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// enable transitions
getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
setContentView(R.layout.activity_my);
}
public void onSomeButtonClicked(View view) {
getWindow().setExitTransition(new Explode());
Intent intent = new Intent(this, MyOtherActivity.class);
startActivity(intent,
ActivityOptions
.makeSceneTransitionAnimation(this).toBundle());
}
}
requestFeature
之前的onCreate
setExitTransition
中的startActivity
<{1}}