首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

AndroidのActivity跳转数据通信跟跳转动画

2012-11-07 
AndroidのActivity跳转数据通信和跳转动画 1 @Override 2public void onClick(View v) { 3// TODO Auto-gen

AndroidのActivity跳转数据通信和跳转动画

 1 @Override 2     public void onClick(View v) { 3         // TODO Auto-generated method stub 4         if(v==bt){ 5             Intent intent = new Intent(this,OtherActivity.class); 6             intent.putExtra("other", "第二页"); 7             startActivityForResult(intent, 0); 8             //dialog.show(); 9         }10     }11 12     @Override13     protected void onActivityResult(int requestCode, int resultCode, Intent data) {14         // TODO Auto-generated method stub15         super.onActivityResult(requestCode, resultCode, data);//请求码,结果码16         if(resultCode==Activity.RESULT_OK){17             Log.e("MainActivity", "onActivityResult");18             dialog.dismiss();19         }20     }

 

ActivityB:

setResult(RESULT_OK);

 

2.这是考虑进入另一个Activity比较迟缓,特别是MapActivity加载地图,试想可以在onCreate方法里,调用super()之后弹出一个对话框,然后在视图加载完成回调里关闭对话框,onWindowFocusChange()里dismisDialog似乎没用,它还在转,肯对话框在show时,就在加载View。

@Override    public void onWindowFocusChanged(boolean hasFocus) {        // TODO Auto-generated method stub        super.onWindowFocusChanged(hasFocus);         if(hasFocus){             //dialog.dismiss();             Log.e("OtherActivity", "加载完毕");         }else{             Log.e("OtherActivity", "加载中..");         }

失败。

3.顺便研究了一下Activity跳转动画,可以再Application节点下,应用动画效果,这将让所有Activity应用该动画主题,也可以针对单个Activity应用动画。新建Style文件,把windowAnimationStyle设置成写好的动画风格,而真正的动画Style应该继承Animation.Activity,然后在各项动画子项里面设置独特的动画。

 

style:

<?xml version="1.0" encoding="utf-8"?><resources>    <style name="ThemeActivity" mce_bogus="1">          <item name="android:windowAnimationStyle">@style/AnimationActivity</item>          <item name="android:windowNoTitle">false</item>      </style>                <style name="AnimationActivity" parent="@android:style/Animation.Activity" mce_bogus="1">              <-进入一个Acitvity包括两部分,当前Activity退出动画,下个个Activity进入动画->        <item name="android:activityOpenEnterAnimation">@anim/enter_out</item>  //下个Activty进入动画        <item name="android:activityOpenExitAnimation">@anim/enter_in</item> //当前Activity退出的动画    <-跳回一个Activity也包括两部分,当前Activity摧毁动画,上个Actiivty进入动画->       <item name="android:activityCloseEnterAnimation">@anim/in</item>  //上个Activity进入动画       <item name="android:activityCloseExitAnimation">@anim/out</item>   //当前Activity退出动画       </style>    </resources>

 

这是我定义的动画:

进入下个Activity,当前Activity往左撤出屏幕,下个Activity从底部上升至屏幕顶部。回返Activity的效果是仿照沪江应用的,当前Activity缩小到偏右方消失,透明度从有到无,前一个Activity从1.5倍缩放到正常大小,但是以左上角为中心点缩放。

 

Open:

当前Acitivity摧毁动画

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">   <translate android:fromXDelta="0"       android:toXDelta="-400"       android:duration="500"/>//这里就是视图从右往左撤出屏幕的动画    <alpha android:fromAlpha="1.0"        android:toAlpha="0.5"        android:duration="800"/></set>

下个Acitivity进入动画

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">        <translate android:fromYDelta="800"        android:toYDelta="0"        android:duration="500" />//从底部上升动画    <alpha android:fromAlpha="0.1"        android:toAlpha="1.0"        android:duration="800"/></set>

 

Close:

 

当前Activity销毁动画

<?xml version="1.0" encoding="utf-8"?><set  xmlns:android="http://schemas.android.com/apk/res/android">    <scale android:fromXScale="1.0"        android:toXScale="0.5"        android:fromYScale="1.0"        android:toYScale="0.5"        android:pivotX="75%"        android:pivotY="50%"        android:duration="800"        android:interpolator="@android:anim/accelerate_interpolator"/>//缩放至屏幕右方    <alpha android:fromAlpha="1.0"        android:toAlpha="0.1"        android:duration="800"/>    </set>

 

上个Actiivty进入动画

 

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">        <scale android:fromXScale="1.5"        android:toXScale="1.0"        android:fromYScale="1.5"        android:toYScale="1.0"        android:duration="800"        android:pivotX="100%"        android:pivotY="100%"/>//缩小在左上方</set>

热点排行