如何设定android activity栈间切换时的动画

评论-3421&
trackbacks-6
前言  在Android 2.0版本以上做Activity切换时的动画效果是很容易的,可以调用overridePendingTransition函数,一行代码搞定,当然配置动画效果的xml文件是少不了的,但是在2.0版本以下是没有这个函数的,如何方便的做动画效果呢?有说用ViewFlipper或者getWindow().setWindowAnimations,但是这里都没有成功,用了一个取巧的办法,但是效果还不错:)&声明   欢迎转载,但请保留文章原始出处:)
    博客园:     农民伯伯: /over140/&正文  一、流程说明    点击Activity1中按钮btnLogin切换到Activity2,切换要求有缩放的动画效果。&  二、实现原理    在Activity2加载时启用顶层容器的动画效果,注意顶层容器最好是整屏。 &  三、实现代码    Activity1.java&&&&/**&&&&&*&登录&&&&&*/&&&&@Override&&&&public&void&onClick(View&view)&{&&&&&&&&startActivity(getIntent().setClass(this,&Activity2.class));&&&&}    Activity2.java&&&&@Override&&&&public&void&onCreate(Bundle&savedInstanceState)&{&&&&&&&&super.onCreate(savedInstanceState);&&&&&&&&setContentView(R.layout.test2);&&&&&&&&Animation&anim&=&AnimationUtils.loadAnimation(this,R.anim.my_scale_action);&&&&&&&&findViewById(R.id.body).startAnimation(anim);&&&&}    test2.xml&LinearLayout&android:id="@+id/body"&&&&xmlns:android="/apk/res/android"&&&&android:layout_width="fill_parent"&android:layout_height="fill_parent"&&&&android:orientation="vertical"&&&&&&&&&&&TextView&android:layout_x="179dp"&android:layout_y="78dp"&&&&&&&&&&&&android:id="@+id/test"&&&&&&&&&&&&android:layout_width="wrap_content"&android:layout_height="wrap_content"&&&&&&&&&&&&android:textColor="#c5dde7"&android:textStyle="bold"&&&&&&&&&&/TextView&&/LinearLayout&     my_scale_action.xml 动画效果的配置文件&set&xmlns:android="/apk/res/android"&&&&&&scale&android:interpolator="@android:anim/accelerate_decelerate_interpolator"&&&&&&&&android:fromXScale="0.0"&&&&&&&&&android:toXScale="1.0"&&&&&&&&&android:fromYScale="0.0"&&&&&&&&android:toYScale="1.0"&&&&&&&&&android:pivotX="50%"&&&&&&&&&android:pivotY="50%"&&&&&&&&android:fillAfter="true"&&&&&&&&&android:duration="300"&/&&/set&      代码说明:        a)  注意代码Activity2.java加粗标红的两行代码,是本文的核心。        b)  R.id.body为顶层容器的id        c)  关于缩放的xml文件大家可以搜索一下,有相关的中文资料,搜索关键字:"android 动画效果"。 &结束   由图片的动画效果联想到View的动画效果再联想到用顶层View做动画效果,效果还不错,仍然在低版本奋斗的朋友有福了:)
阅读(...) 评论()& 上一页 1
锁定老帖子
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
androidtoast
等级: 初级会员
来自: 北京
发表时间:&&
没有什么好讲的,先看效果图吧。
主要代码:
package com.iteye.
import java.util.ArrayL
import java.util.L
import android.app.A
import android.content.I
import android.os.B
import android.view.V
import android.view.View.OnClickL
import android.widget.ArrayA
import android.widget.B
import android.widget.S
public class MainActivity extends Activity {
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Spinner mAnimSp = (Spinner) findViewById(R.id.animation_sp);
Button mButton=(Button) findViewById(R.id.other_button);
// 通过资源文件获取Spinner填充内容
String[] ls = getResources().getStringArray(R.array.anim_type);
List&String& list = new ArrayList&String&();
// 把数组内容填充 到集合
for (int i = 0; i & ls. i++) {
list.add(ls[i]);
ArrayAdapter&String& animType = new ArrayAdapter&String&(this,
android.R.layout.simple_spinner_item, list);
animType.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mAnimSp.setAdapter(animType);
mAnimSp.setSelection(0);
mButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(MainActivity.this, OtherActivity.class);
startActivity(intent);
switch (mAnimSp.getSelectedItemPosition()) {
/*注意:此方法只能在startActivity和finish方法之后调用。
第一个参数为第一个Activity离开时的动画,第二参数为所进入的Activity的动画效果*/
overridePendingTransition(R.anim.fade, R.anim.hold);
overridePendingTransition(R.anim.my_scale_action,
R.anim.my_alpha_action);
overridePendingTransition(R.anim.scale_rotate,
R.anim.my_alpha_action);
overridePendingTransition(R.anim.scale_translate_rotate,
R.anim.my_alpha_action);
overridePendingTransition(R.anim.scale_translate,
R.anim.my_alpha_action);
overridePendingTransition(R.anim.hyperspace_in,
R.anim.hyperspace_out);
overridePendingTransition(R.anim.push_left_in,
R.anim.push_left_out);
overridePendingTransition(R.anim.push_up_in,
R.anim.push_up_out);
overridePendingTransition(R.anim.slide_left,
R.anim.slide_right);
overridePendingTransition(R.anim.wave_scale,
R.anim.my_alpha_action);
overridePendingTransition(R.anim.zoom_enter,
R.anim.zoom_exit);
overridePendingTransition(R.anim.slide_up_in,
R.anim.slide_down_out);
资源文件太多不贴了自己下载看吧。希望对你能有点用。
(315.4 KB)
下载次数: 4140
等级: 初级会员
来自: 杭州
发表时间:&&
多谢楼主。很有用啊。分享是一种美德。回帖也是一种美德。哈哈
请登录后投票
来自: 武汉人在北京
发表时间:&&
这帖没什么养分 2.2以后添加了这种打开activity不同显示效果的api 但也只能2.2以上的手机才能用 要知道现在2.1的手机还满大街的用呢 有的甚至还是1.6的系统而且已经有很多人发这个了 你这属于重复帖
请登录后投票
androidtoast
等级: 初级会员
来自: 北京
发表时间:&&
Cindy_Lee 写道这帖没什么养分 2.2以后添加了这种打开activity不同显示效果的api 但也只能2.2以上的手机才能用 要知道现在2.1的手机还满大街的用呢 有的甚至还是1.6的系统
而且已经有很多人发这个了 你这属于重复帖
发完才发现有重复贴。不过纠正你个错误。在2.0以后这种效果都可以用。
请登录后投票
来自: 成都
发表时间:&&
能否不用case呢?
请登录后投票
等级: 初级会员
来自: 合肥
发表时间:&&
&string-array name="anim_type"&
&item&淡入淡出效果&/item&
&item&放大淡出效果&/item&
&item&转动淡出效果1&/item&
&item&转动淡出效果2&/item&
&item&左上角展开淡出效果&/item&
&item&压缩变小淡出效果&/item&
&item&右往左推出效果&/item&
&item&下往上推出效果&/item&
&item&左右交错效果&/item&
&item&放大淡出效果&/item&
&item&缩小效果&/item&
&item&上下交错效果&/item&
&/string-array&
从这个里面取数值得学习,呵呵,以前没有这样用过。
请登录后投票
等级: 初级会员
来自: 信阳
发表时间:&&
kaki 写道 &string-array name="anim_type"&
&item&淡入淡出效果&/item&
&item&放大淡出效果&/item&
&item&转动淡出效果1&/item&
&item&转动淡出效果2&/item&
&item&左上角展开淡出效果&/item&
&item&压缩变小淡出效果&/item&
&item&右往左推出效果&/item&
&item&下往上推出效果&/item&
&item&左右交错效果&/item&
&item&放大淡出效果&/item&
&item&缩小效果&/item&
&item&上下交错效果&/item&
&/string-array&
从这个里面取数值得学习,呵呵,以前没有这样用过。
那看来你out了
请登录后投票
helloandroid
来自: 成都
发表时间:&&
楼主的gif图片是用什么工具做的呀?
请登录后投票
ahead_zhan
等级: 初级会员
来自: 深圳
发表时间:&&
嗯,好东东
总结的很有价值
请登录后投票
等级: 初级会员
来自: 深圳
发表时间:&&
apidemo里面的
请登录后投票
& 上一页 1
跳转论坛:移动开发技术
Web前端技术
Java企业应用
编程语言技术安卓开发,在同一个activity中, 切换两种布局layout时,能实现动画效果吗,求大神范例代_百度知道
安卓开发,在同一个activity中, 切换两种布局layout时,能实现动画效果吗,求大神范例代
安卓开发,在同一个activity中, 切换两种布局layout时,能实现动画效果吗,求大神范例代码!
提问者采纳
切换两种布局,怎么个切换法
setcontentview()
LayoutInflater&inflator=getLayoutInflater();View&view=inflator.inflate(isFirstXml?R.layout.myfirstxml:R.layout.myseconxml,&null,&false);view.startAnimation(AnimationUtils.loadAnimation(this,&android.R.anim.slide_out_right));setContentView(view);
提问者评价
太给力了,你的回答完美解决了我的问题!
其他类似问题
按默认排序
其他2条回答
可以实现动画,比如淡入淡出,左右移动。比较炫的就不会了
需要用到哪个类和方法?
可以使用viewpager来实现
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 android activity类 的文章

 

随机推荐