一个页面对应一个Activity,页面之间的跳转最常见的是从上下左右四个方向,但是这是如何实现的呢? 实际上很简单。
创建两个Activity, MainActivity和SecondActivity:
MainActivity:
public class MainActivity extends Activity implements OnClickListener {
private Button btn_next;
private long mExitMillTime = 0L;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_next = (Button) findViewById(R.id.btn_next_page);
btn_next.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.btn_next_page:
Intent it = new Intent(MainActivity.this, SecondActivity.class);
startActivity(it);
overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
break;
default:
break;
}
}
/*@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (System.currentTimeMillis() - mExitMillTime > 2000) {
Toast.makeText(this, "再点击一次退出程序", Toast.LENGTH_SHORT).show();
mExitMillTime = System.currentTimeMillis();
} else {
MainActivity.this.finish();
}
return true;
}
return super.onKeyDown(keyCode, event);
}*/
}
SecondActivity代码如下:
public class SecondActivity extends Activity implements OnClickListener{
private Button btnReturn;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
btnReturn=(Button) findViewById(R.id.btn_return_homepage);
btnReturn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.btn_return_homepage:
Intent it = new Intent(SecondActivity.this, MainActivity.class);
startActivity(it);
overridePendingTransition(R.anim.push_right_in,
R.anim.push_right_out);
break;
default:
break;
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
// 点击返回键时,同样以动画返回
Intent it = new Intent(SecondActivity.this, MainActivity.class);
startActivity(it);
overridePendingTransition(R.anim.push_right_in,
R.anim.push_right_out);
return super.onKeyDown(keyCode, event);
}
}
要想在Activity之间进行动画切换,主要是方法overridePendingTransition(R.anim.push_right_in,R.anim.push_right_out);
至于anim文件夹下的push_left_in.xml等四个文件就不再贴出来了,有兴趣的可以看一下简单的demo
下载地址:点击打开链接