zoukankan      html  css  js  c++  java
  • 不同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

    下载地址:点击打开链接

  • 相关阅读:
    大型网站--前端性能优化和规范
    大型网站--负载均衡架构
    最具有性价比的语言javascript之二,学习篇
    最具有性价比的语言javascript之介绍篇
    《贴吧合伙人》——百度已经沦落到卖血为生?
    用rust实现高性能的数据压缩工具
    高性能的数据压缩库libzling-20160105
    高性能的数据压缩库libzling-20140324
    高性能的数据压缩库libzling
    简易js模板引擎
  • 原文地址:https://www.cnblogs.com/jinfenglee/p/4388711.html
Copyright © 2011-2022 走看看