`

通过Scale的方式打开一个新的Activity

阅读更多
1. ScaleActivity.java文件
package cn.com;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class ScaleActivity extends Activity {
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		/* 以findViewById()取得Button对象,并添加onClickListener */
		Button b1 = (Button) findViewById(R.id.Button01);
		b1.setOnClickListener(new Button.OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				/* new一个Intent对象,并指定class */
				Intent intent = new Intent();
				intent.setClass(ScaleActivity.this, Activitya.class);
				/* 调用Activity EX03_10_1 */
				startActivity(intent);
			}
		});
	}
}

2.ScaleAnimationHelper.java文件
package cn.com;

import android.content.Context;
import android.view.View;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.ScaleAnimation;

public class ScaleAnimationHelper {
	Context con;

	int order;

	public ScaleAnimationHelper(Context con, int order) {
		this.con = con;
		this.order = order;
	}

	AlphaAnimation myAnimation_Alpha;
	ScaleAnimation myAnimation_Scale;

	public void ScaleOutAnimation(View view) {
		myAnimation_Alpha = new AlphaAnimation(1.0f, 0.1f);
		myAnimation_Scale = new ScaleAnimation(0.1f, 1.0f, 0.1f, 1f,
				Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
				0.5f);
		myAnimation_Scale.setInterpolator(new AccelerateInterpolator());

		AnimationSet aa = new AnimationSet(true);
		aa.addAnimation(myAnimation_Alpha);
		aa.addAnimation(myAnimation_Scale);
		aa.setDuration(1000);

		view.startAnimation(aa);
	}

	public void ScaleInAnimation(View view) {

		myAnimation_Scale = new ScaleAnimation(1.0f, 0.0f, 1.0f, 0.0f,
				Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
				0.5f);
		myAnimation_Scale.setDuration(1000);
		myAnimation_Scale.setInterpolator(new AccelerateInterpolator());

		AnimationSet aa = new AnimationSet(true);
		aa.addAnimation(myAnimation_Scale);
		// aa.setDuration(1000);

		view.startAnimation(aa);
	}
}

3. Activitya.java文件
package cn.com;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;
import android.view.View.OnClickListener;

public class Activitya extends Activity implements OnClickListener {
	ViewGroup v;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.newq);

		v = (LinearLayout) findViewById(R.id.news);

		Button Button01 = (Button) findViewById(R.id.Button01);

		Button01.setOnClickListener(this);

		// 显示layout进行缩放动画效果
		ScaleAnimationHelper scaleHelper = new ScaleAnimationHelper(this, 1);
		scaleHelper.ScaleOutAnimation(v);

	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		// 显示layout进行缩放动画效果
		//ScaleAnimationHelper scaleHelper = new ScaleAnimationHelper(this, 1);
		//scaleHelper.ScaleInAnimation(v);
	}
}

4.main.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:layout_width="fill_parent"
	android:layout_height="fill_parent">

	<Button android:text="StartActivity" android:id="@+id/Button01"
		android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>


5.newq.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent" android:background="#123456"
	android:layout_height="fill_parent" android:id="@+id/news"
	android:orientation="vertical">
	<TextView android:text="this is the second activity"
		android:id="@+id/TextView01" android:layout_width="wrap_content"
		android:layout_height="wrap_content"></TextView>
</LinearLayout>

注意2个Activity都需要在Manifest文件中进行申明
分享到:
评论
1 楼 songfantasy 2011-02-23  
和这样的效果一样吗?

overridePendingTransition(R.anim.zoomin, R.anim.zoomout);

相关推荐

    动画效果 translate、scale、alpha、rotate 切换Activity动画 控件位置调整.zip

    旋转动画让视图围绕一个轴心进行旋转,通过`fromDegrees`和`toDegrees`属性定义旋转的角度。这种动画可用于创建旋转按钮或者在加载动画中展示进度。 在Activity切换时使用这些动画,可以使应用的过渡更加平滑,...

    Activity从底部悬浮

    - 标准模式(standard):默认模式,每次启动都会创建一个新的Activity实例。 - 单例模式(singleTop):如果栈顶已经存在该Activity的实例,就不会再创建新的,而是调用onNewIntent()方法。 - 单任务模式...

    安卓Android源码——动画效果切换Activity动画 控件位置调整.zip

    在Activity切换过程中,scale动画可以用于放大或缩小Activity,比如模拟“推拉抽屉”效果,或者在打开新Activity时让其从一个点逐渐扩大至全屏。 3. **alpha动画**:Alpha动画是控制对象透明度变化的动画,通过调整...

    SmoothSwitchLibrary仿IOS切换Activity动画效果.7z

    "SmoothSwitchLibrary仿IOS切换Activity动画效果"就是这样一个专为Android设计的库,它允许开发者轻松地在应用程序中实现与iOS类似的页面过渡动画。 在iOS中,Activity之间的切换通常伴随着页面内容的淡入淡出、...

    新版Android开发教程.rar

    Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...

    Android技术面试资料整理

    - **standard**:这是默认的启动模式,每次启动一个新的Intent都会创建一个新的Activity实例,即使该Activity已经存在于任务栈中。 - **singleTop**:当Activity的实例位于任务栈顶部时,新的Intent会被传递给该...

    Android使用Theme自定义Activity进入退出动画的方法

    在`res/values/themes.xml`文件中,定义一个新的Style,例如`ThemeActivity`,并包含`windowAnimationStyle`属性。这个属性将引用一个动画样式: ```xml &lt;style name="ThemeActivity"&gt; ...

    安卓Android源码——安卓Android Layout UI 首页加载过渡动画,星期变化动画.rar

    例如,当我们打开一个新的Activity或者在同一个Activity内切换不同的Fragment时,可以使用过渡动画使这种切换更加自然流畅。Android提供了多种内置动画,如淡入淡出(Fade)、平移(Slide)和缩放(Scale)等,同时...

    中心打开效果

    通过以上步骤,我们可以为Activity创建一个从屏幕中心向外展开的动画效果。这个Demo不仅展示了如何实现这一效果,还鼓励开发者在实践中探索更多的动画组合,以创造出更多有趣的交互体验。在实际项目中,开发者可以...

    android界面效果全汇聚

    `overridePendingTransition()`方法允许开发者指定两个动画资源:一个用于即将消失的Activity,另一个用于新启动的Activity。通过这种方式,可以轻松地实现各种复杂的过渡效果。 **语法格式**: ```java @Override ...

    Android UI 效果大全

    此方法用于指定当前Activity关闭时以及下一个Activity打开时所使用的动画资源。它接受两个参数:第一个参数代表当前Activity退出时的动画,第二个参数代表下一个Activity进入时的动画。 **示例代码:** ```java @...

    安卓动画效果相关-模仿横向窗帘的动画正转关闭暂停反转开启带进度类似电机的转动.rar

    这个压缩包文件“安卓动画效果相关-模仿横向窗帘的动画正转关闭暂停反转开启带进度类似电机的转动.rar”显然是一个关于实现特定动画效果的示例项目。这个项目旨在创建一个类似于电机转动的窗帘动画,具有正转关闭、...

    android界面效果全汇总

    当任务执行时,会启动一个新的Activity,并关闭当前的SplashScreen Activity。最后,通过调用`overridePendingTransition()`方法设置了过渡动画效果。 ##### 3. 淡入淡出效果实现 除了使用`...

    Android 无闪烁启动画面程序源码-IT计算机-毕业设计.zip

    总之,这个"Android 无闪烁启动画面程序源码"项目提供了一个很好的学习起点,让学生和开发者掌握Android应用启动画面的实现方法,以及如何通过优化提高用户体验。通过实践和研究,不仅可以巩固Android基础知识,还能...

    引导界面仿微信.zip项目安卓应用源码下载

    引导界面通常作为一个单独的Activity实现,通过设置特定的布局和动画来达到引人入胜的效果。 在源码中,我们可能会看到以下几个关键部分: 1. **布局文件**(Layout Files):如`activity_splash.xml`,这是定义...

    android 视图切换效果

    - 使用`Intent`启动新的`Activity`,可以通过设置`Intent`的`FLAG_ACTIVITY_TRANSITION_ANIMATIONS`标志来开启过渡动画。 - 自定义`Activity`过渡动画,通过在`AndroidManifest.xml`中为`Activity`指定`android:...

    Android JavaScript打开webview图片、支持放大缩小

    这样,当用户在Webview中点击图片时,Android应用会启动一个新的全屏活动,并根据用户的手势进行图片的放大和缩小操作。这种方法既保持了Webview的原生体验,又充分利用了Android的触摸手势功能,提高了用户体验。 ...

    android api demo讲解

    - **Activity**:是Android应用中的一个组件,代表了一个屏幕界面。 - **Intent**:用于启动Activity或Service等组件的一种消息对象。 - **Service**:在后台运行的服务组件,不提供用户界面。 - **...

    android手机电量监控

    在Android平台上,电量监控是一项重要的功能,它可以帮助用户更好地管理手机的使用,避免因为电量耗尽而带来的不便。...通过这些技术,我们可以创建一个实用的电量管理工具,帮助用户更好地掌握手机的电量情况。

Global site tag (gtag.js) - Google Analytics