不同Activity之间的动画切换

一个页面对应一个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

下载地址:点击打开链接

posted on 2014-06-10 00:10  jinfenglee  阅读(169)  评论(0编辑  收藏  举报

导航