最近写的一个项目中圆形过渡动画总感觉很高级,用的是Fragment
好像不支持5.0以下:
public class MainActivity extends AppCompatActivity {
private Button button;
private RelativeLayout relativeLayout;
private FragmentTransaction transaction;
private FrameLayout fragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
relativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout);
game();
init();
}
public void game()
{
transaction = getSupportFragmentManager().beginTransaction();
//最开始fragment最开始是隐藏的。
fragment=(FrameLayout)findViewById(R.id.fragment);
}
public void init(){
button=(Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
runOnUiThread(new Runnable() {
@Override
public void run() {
//然后是fragment的解开隐藏。
fragment.setVisibility(View.VISIBLE);
button.setVisibility(View.GONE);
//这个是圆形的动画。
Animator animator = ViewAnimationUtils.createCircularReveal(
relativeLayout,0,
relativeLayout.getHeight(),
0,
relativeLayout.getHeight()+100);
//动画的加速
animator.setInterpolator(new AccelerateDecelerateInterpolator());
//圆形动画的速度
animator.setDuration(1000);
//动画的启动
animator.start();
transaction.add(R.id.fragment, new BlankFragment());
transaction.commit();
//监听但是现在没有什么效果。
animator.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
// Intent intent=new Intent(MainActivity.this,Main2Activity.class);
// MainActivity.this.startActivity(intent);
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
}
});
// Intent intent=new Intent(MainActivity.this,Main2Activity.class);
// startActivity(intent);
// overridePendingTransition(R.anim.zoomin, R.anim.zoomout);
}
});
}
}