Android Activity界面切换的各种效果

首先我想给大家介绍一个非常好的学习Android的网站,在我看来,肯定比视频要好的多。

网址是:http://www.oschina.net/android/65/android-activity 希望大家可以好好的学习,不懂的也请关注我,我们一起商讨。

对于Activity界面的切换我就不给大家展示图片了,直接进入主题吧,不懂的可以下载我上传的资源,或者给我发评论。

源码下载:http://download.youkuaiyun.com/detail/lovemy_baby/9508176

转载请注明:http://blog.youkuaiyun.com/lovemy_baby/article/details/51297442

首先我们需要两个Activity Java界面和两个.xml界面,怎么定义看大家的喜好,

首先我们看看mian.xml代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:id="@+id/contactItems"
    android:paddingBottom="5dp"
    android:paddingLeft="12dp"
    android:paddingTop="5dp"
    android:paddingRight="12dp"
    >
<Spinner 
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:id="@+id/spAnim"
   />
<Button 
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:id="@+id/btn_next"
   android:text="Next"
   />
</LinearLayout>

就是一个Spinner和一个Button控件

接下来是next.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/contactItems"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingLeft="12dp"
    android:paddingTop="5dp"
    android:paddingRight="12dp"
    android:paddingBottom="5dp"
     >
     <TextView 
         android:layout_height="wrap_content"
         android:layout_width="fill_parent"
         android:id="@+id/text2"
         android:textSize="20sp"
         android:paddingTop="20dp"
         android:text="测试跳转效果"
         android:layout_marginLeft="70dp"
         />
     <EditText 
         android:layout_height="wrap_content"
         android:layout_width="fill_parent"
         />
</LinearLayout>

当然也不用做过多的解释,如果大家不明白,可以看看基础课程,关于Android控件的,对以后学习会有帮助。

然后我们看看array.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="anim_type">
        <item>淡入淡出效果</item>
        <item>放大淡出效果</item>
        <item>转动淡出效果</item>
        <item>转动淡出效果2</item>
        <item>左上角展开淡出效果</item>
        <item>压缩变小淡出效果</item>
        <item>右往左推出效果</item>
        <item>下往上推出效果</item>
        <item>左右交叉效果</item>
        <item>放大淡出效果</item>
        <item>缩小效果</item>
        <item>上下交错效果</item>
    </string-array>
</resources>

这就是要加入到Spinner里显示出来的内容。

接下来我们就看看MainActivity.java代码:

package com.itheima.zidingyione;


import java.util.ArrayList;
import java.util.List;


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;


public class MainActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

final Spinner spAnim=(Spinner)findViewById(R.id.spAnim);
String[] strings=getResources().getStringArray(R.array.anim_type);
List<String> list=new ArrayList<String>();
for (int i = 0; i < strings.length; i++) {
list.add(strings[i]);
}
ArrayAdapter<String> animType=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,list);
animType.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spAnim.setAdapter(animType);
spAnim.setSelection(0);

Button button=(Button)findViewById(R.id.btn_next);
button.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.setClass(MainActivity.this, NextActivity.class);
startActivityForResult(intent, 0);
switch (spAnim.getSelectedItemPosition()) {
case 0:
overridePendingTransition(R.anim.fade, R.anim.hold);
break;
case 1:  
                    overridePendingTransition(R.anim.my_scale_action,  
                            R.anim.my_alpha_action);  
                    break;  
                case 2:  
                    overridePendingTransition(R.anim.scale_rotate,  
                            R.anim.my_alpha_action);  
                    break;  
                case 3:  
                    overridePendingTransition(R.anim.scale_translate_rotate,  
                            R.anim.my_alpha_action);  
                    break;  
                case 4:  
                    overridePendingTransition(R.anim.scale_translate,  
                            R.anim.my_alpha_action);  
                    break;  
                case 5:  
                    overridePendingTransition(R.anim.hyperspace_in,  
                            R.anim.hyperspace_out);  
                    break;  
                case 6:  
                    overridePendingTransition(R.anim.push_left_in,  
                            R.anim.push_left_out);  
                    break;  
                case 7:  
                    overridePendingTransition(R.anim.push_up_in,  
                            R.anim.push_up_out);  
                    break;  
                case 8:  
                    overridePendingTransition(R.anim.slide_left,  
                            R.anim.slide_right);  
                    break;  
                case 9:  
                    overridePendingTransition(R.anim.wave_scale,  
                            R.anim.my_alpha_action);  
                    break;  
                case 10:  
                    overridePendingTransition(R.anim.zoom_enter,  
                            R.anim.zoom_exit);  
                    break;  
                case 11:  
                    overridePendingTransition(R.anim.slide_up_in,  
                            R.anim.slide_down_out);  
                    break;
}
}
});
}


}

代码很简单,简单点解释就是先初始化Spinner控件,然后用List获取array.xml里面的内容。然后ArrayAdapt承载里面的内容通过Spinner显示在界面上就OK了。

至于下面的代码,意思就是在离开界面的时候是用那种方式离开界面,对于anim文件中的这些代码,大家可以下载下来看看,因为代码太多,就不贴了。

下面就是NextActivity.java代码:

package com.itheima.zidingyione;


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;


public class NextActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.next);

}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

if (keyCode==KeyEvent.KEYCODE_BACK&&event.getRepeatCount()==0) {
Intent intent=new Intent();
intent.setClass(NextActivity.this, MainActivity.class);
setResult(RESULT_OK,intent);
finish();
overridePendingTransition(R.anim.slide_up_in, R.anim.slide_down_out);
return false;
}

return false;
}
}

好了,基本就是这样了,是不是很简单的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值