AndroidのActivity跳转数据通信和跳转动画
2012-08-14 13:14
411 查看
1.当由一个ActivityA进入另一个ActivityB 的时候,ActivityA弹出等待对话框,表示将要进入第二个Activity,当我们按返回键的时候,将从ActivityB返回到ActiviyA,如果在ActivityA直接startActivity的画,Activity的对话框还在转,我们可以用startActivityForResult启动Activity,不过要在ActivityB中调用了finish方法才会返回消息给前一个Activity,在ActivityB中设置返回结果,在ActivityA中复写onActivityResult得到返回消息。
。ActivityA:
ActivityB:
setResult(RESULT_OK);
2.这是考虑进入另一个Activity比较迟缓,特别是MapActivity加载地图,试想可以在onCreate方法里,调用super()之后弹出一个对话框,然后在视图加载完成回调里关闭对话框,onWindowFocusChange()里dismisDialog似乎没用,它还在转,肯对话框在show时,就在加载View。
失败。
3.顺便研究了一下Activity跳转动画,可以再Application节点下,应用动画效果,这将让所有Activity应用该动画主题,也可以针对单个Activity应用动画。新建Style文件,把windowAnimationStyle设置成写好的动画风格,而真正的动画Style应该继承Animation.Activity,然后在各项动画子项里面设置独特的动画。
style:
这是我定义的动画:
进入下个Activity,当前Activity往左撤出屏幕,下个Activity从底部上升至屏幕顶部。回返Activity的效果是仿照沪江应用的,当前Activity缩小到偏右方消失,透明度从有到无,前一个Activity从1.5倍缩放到正常大小,但是以左上角为中心点缩放。
Open:
当前Acitivity摧毁动画
下个Acitivity进入动画
Close:
当前Activity销毁动画
上个Actiivty进入动画
。ActivityA:
@Override public void onClick(View v) { // TODO Auto-generated method stub if(v==bt){ Intent intent = new Intent(this,OtherActivity.class); intent.putExtra("other", "第二页"); startActivityForResult(intent, 0); //dialog.show(); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data);//请求码,结果码 if(resultCode==Activity.RESULT_OK){ Log.e("MainActivity", "onActivityResult"); dialog.dismiss(); } }
ActivityB:
setResult(RESULT_OK);
2.这是考虑进入另一个Activity比较迟缓,特别是MapActivity加载地图,试想可以在onCreate方法里,调用super()之后弹出一个对话框,然后在视图加载完成回调里关闭对话框,onWindowFocusChange()里dismisDialog似乎没用,它还在转,肯对话框在show时,就在加载View。
protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); dialog = new ProgressDialog(this); dialog.show();
@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>
相关文章推荐
- AndroidのActivity跳转数据通信和跳转动画
- AndroidのActivity跳转数据通信和跳转动画
- Android之Activity跳转动画--左右切换
- Android自定义Activity酷炫的动画跳转效果
- 黑马Android:Activity在跳转时携带数据
- android Activity和fragment通信之activity向Fragment发送数据
- android中页面跳转以及数据在Activity之间的传递
- 一个简单的android activity跳转动画例子
- android Activity 和 HTML 数据通信
- Android--Activity之间跳转动画
- Android之Activity的生命周期和Activity间的跳转和数据传递
- Android四大组件——Activity跳转动画、淡出淡入、滑出滑入、自定义退出进入
- Android_06_Activity跳转时,数据的传递及接收
- android 简单地设置Activity界面的跳转动画
- Android的activity跳转动画实现
- Android之Activity之回顾跳转动画
- Android的Activity跳转动画集合
- 36 Android Activity跳转动画 获取当前版本
- Android之Activity的生命周期和Activity间的跳转和数据传递
- android Activity 跳转回传数据