我们都知道绚丽的APP总会给用户耳目一新的感觉,为了抓住用户更大网络公司使出浑身解数让自己的产品更绚丽,而绚丽最简单的效果就是Activity跳转效果,不仅可以让用户看起来舒服,而且实现起来也特别简单,好,下面就让我们实现这些效果,告别原生态的跳转效果吧!

首先新建一个Android项目,起名叫作AndroidSwitch。实在不知道起什么名字了,就有道了一个这样的名字,首先让我们先看一下XML代码很简单,就一个LIstview 代码如下所示:

1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
2. android:layout_width="fill_parent"  
3. android:layout_height="fill_parent"  
4. android:orientation="vertical" >  
5.   
6. <ListView  
7. android:id="@+id/listView1"  
8. android:layout_width="match_parent"  
9. android:layout_height="wrap_content" >  
10. </ListView>  
11.   
12. </LinearLayout>

这个XML中的ListView主要负责盛装一些效果的点击事件,显示效果的文字我会放在Values,一起同项目给你们!跳转效果.跳转效果,最重要的当然是动画了,.没有动画谈何效果,所以我们在res文件新建一个anim文件用于放各种动画,动画挺多的,我就举一个简单的XML.就不一一举例了,我会把项目给你们的,可以自己去看!如下所示:

1. <?xml version="1.0" encoding="utf-8"?>  
2. <set xmlns:android="http://schemas.android.com/apk/res/android" >  
3.   
4. <translate  
5. android:duration="2000"  
6. android:fromXDelta="0"  
7. android:toXDelta="-100%p" />  
8.   
9. </set>

是不是很简单呀,好,竟然动画也编辑完了,我们就需要在哪调用它.对了,我们还需要一个跳转SecondActivity,在这个SecondActivity里面我只放了一个Button用于返回,这样不用按Back键那么麻烦了,它的作用只是为了显示第一个Activity跳转的效果,让我看.如下所示:

1. package com.zqy.androidswitch;  
2.   
3. import android.app.Activity;  
4. import android.os.Bundle;  
5. import android.view.View;  
6. import android.view.View.OnClickListener;  
7. import android.widget.Button;  
8.   
9. public class SecondActivity extends Activity{  
10. @Override  
11. protected void onCreate(Bundle savedInstanceState) {  
12. super.onCreate(savedInstanceState);  
13.         setContentView(R.layout.act_second);  
14. final Button button=(Button) findViewById(R.id.button1);  
15. new OnClickListener() {  
16.               
17. @Override  
18. public void onClick(View v) {  
19.                 finish();  
20.             }  
21.         });  
22.     }  
23. }

好,基本完成一半了,我需要写实现的代码了,这属于核心了,让我们看看核心代码是怎么实现的吧:如下所示:

1. package com.zqy.androidswitch;  
2.   
3. import java.util.ArrayList;  
4. import java.util.List;  
5.   
6.   
7. import android.os.Bundle;  
8. import android.app.Activity;  
9. import android.content.Intent;  
10. import android.view.View;  
11. import android.widget.AdapterView;  
12. import android.widget.ArrayAdapter;  
13. import android.widget.ListView;  
14. import android.widget.AdapterView.OnItemClickListener;  
15.   
16. public class MainActivity extends Activity {  
17.   
18. @Override  
19. protected void onCreate(Bundle savedInstanceState) {  
20. super.onCreate(savedInstanceState);  
21.         setContentView(R.layout.activity_main);  
22. final ListView listView = (ListView) findViewById(R.id.listView1);  
23.         String[] ls = getResources().getStringArray(R.array.anim_type);  
24. new ArrayList<String>();  
25. for (int i = 0; i < ls.length; i++) {  
26.             list.add(ls[i]);  
27.         }  
28. new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, list);  
29.         adapter.setDropDownViewResource(android.R.layout.simple_list_item_1);  
30.         listView.setAdapter(adapter);  
31. new OnItemClickListener() {  
32.   
33. @Override  
34. public void onItemClick(AdapterView<?> parent, View view,  
35. int position, long id) {  
36. new Intent(MainActivity.this, SecondActivity.class);  
37.                 startActivity(intent);  
38. switch (position) {  
39. case 0:  
40.                     overridePendingTransition(R.anim.fade, R.anim.hold);  
41. break;  
42. case 1:  
43.                     overridePendingTransition(R.anim.my_scale_action,  
44.                             R.anim.my_alpha_action);  
45. break;  
46. case 2:  
47.                     overridePendingTransition(R.anim.scale_rotate,  
48.                             R.anim.my_alpha_action);  
49. break;  
50. case 3:  
51.                     overridePendingTransition(R.anim.scale_translate_rotate,  
52.                             R.anim.my_alpha_action);  
53. break;  
54. case 4:  
55.                     overridePendingTransition(R.anim.scale_translate,  
56.                             R.anim.my_alpha_action);  
57. break;  
58. case 5:  
59.                     overridePendingTransition(R.anim.hyperspace_in,  
60.                             R.anim.hyperspace_out);  
61. break;  
62. case 6:  
63.                     overridePendingTransition(R.anim.push_left_in,  
64.                             R.anim.push_left_out);  
65. break;  
66. case 7:  
67.                     overridePendingTransition(R.anim.push_up_in,  
68.                             R.anim.push_up_out);  
69. break;  
70. case 8:  
71.                     overridePendingTransition(R.anim.slide_left,  
72.                             R.anim.slide_right);  
73. break;  
74. case 9:  
75.                     overridePendingTransition(R.anim.wave_scale,  
76.                             R.anim.my_alpha_action);  
77. break;  
78. case 10:  
79.                     overridePendingTransition(R.anim.zoom_enter,  
80.                             R.anim.zoom_exit);  
81. break;  
82. case 11:  
83.                     overridePendingTransition(R.anim.slide_up_in,  
84.                             R.anim.slide_down_out);  
85. break;  
86.   
87. default:  
88. break;  
89.                 }  
90.   
91.             }  
92.         });  
93.   
94.         }  
95.     }

用Listview盛装各种效果的点击事件,我们点击LIstview在根据点击位置去执行什么样的动画.不知道手机怎么做出gif图片,我就把主页面显示出来吧,大家一会可以下载Demo.

 

Android activity跳转性能优化 android activity跳转动画_java

好了,基本实现完了.是不是很简单.有了这些动画,就会让你的APP多了一道绚丽的风景线