博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动画综合练习(延迟进入+页面向导+文本框抖动)
阅读量:7056 次
发布时间:2019-06-28

本文共 4669 字,大约阅读时间需要 15 分钟。

1、activity_welcome.xml(界面刚载入进入欢迎界面的布局)

2、image_progress.xml(欢迎界面启动后,屏幕底部会有一个旋转的载入进度条)

> <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="0" android:toDegrees="360" android:pivotX="50%" android:pivotY="50%" android:drawable="@drawable/progess2"/>

3、WelcomeActivity.java

package com.atguigu.l10_app2;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.animation.AlphaAnimation;import android.view.animation.Animation;import android.view.animation.Animation.AnimationListener;import android.widget.LinearLayout;/** * 欢迎界面 * */public class WelcomeActivity extends Activity {	private LinearLayout ll_welcome_root;	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_welcome);				ll_welcome_root = (LinearLayout) findViewById(R.id.ll_welcome_root);		//调用启动动画效果		showAnimation();	}		//接受消息、处理消息	private Handler handler = new Handler(new Handler.Callback() {		@Override		public boolean handleMessage(Message msg) {			if(msg.what==1) {				//接受到消息后。启动还有一个界面				startActivity(new Intent(WelcomeActivity.this, Guide1Activity.class));			}			return true;		}	});	/**	 * 显示动画	 */	private void showAnimation() {		//设置图片背景透明度		AlphaAnimation animation = new AlphaAnimation(0.0f, 1.0f);		animation.setDuration(2000);		//设置动画监听		animation.setAnimationListener(new AnimationListener() {						@Override			public void onAnimationStart(Animation animation) {							}						@Override			public void onAnimationRepeat(Animation animation) {							}						@Override			public void onAnimationEnd(Animation animation) {				//发送延迟的空消息				handler.sendEmptyMessageDelayed(1, 1000);			}		});		//欢迎界面的启动动画效果界面		ll_welcome_root.startAnimation(animation);	}}
4、然后进入第一个向导界面如图

先看向导界面1的布局文件

activity_guide1.xml

Guide1Activity.java(代码作用是启动界面向导二,以及显示向导界面1和2的切换效果)

package com.atguigu.l10_app2;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;public class Guide1Activity extends Activity {	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_guide1);	}	public void next(View v) {		startActivity(new Intent(this, Guide2Activity.class));		//显示一个界面切换的动画		overridePendingTransition(R.anim.anim_right_in, R.anim.anim_left_out);	}}
anim_left_out.xml(当前页面向左滑动)

> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="0%" android:toXDelta="-100%" android:duration="1000"> </translate>

anim_right_in.xml(下一张页面向左滑动进入到当前页面)

> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="100%" android:toXDelta="0%" android:duration="1000"> </translate>

5、接下来看向导页面2的布局

activity_guide2.xml(向导界面二,上图的布局文件)

Guide2Activity.java(向导二的java代码。作用是点击下一张。和点击上一张。显示页面切换的滑动效果)

package com.atguigu.l10_app2;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;public class Guide2Activity extends Activity {	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_guide2);	}		public void next(View v) {		startActivity(new Intent(this, MainActivity.class));	}		public void pre(View v) {		finish();				//显示一个界面切换的动画		overridePendingTransition(R.anim.anim_left_in, R.anim.anim_right_out);	}}
另外附上点击返回上一张界面的xml文件

anim_left_in.xml

anim_right_out.xml

xml version="1.0" encoding="utf-8"?

> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="0%" android:toXDelta="100%" android:duration="500"> </translate>

6、接下来进入主界面了(这个效果是文本框抖动效果)

activity_main.xml(先看主页面的布局文件)

MainActivity.java

package com.atguigu.l10_app2;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.EditText;public class MainActivity extends Activity {	private EditText et_main_number;		@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		et_main_number = (EditText) findViewById(R.id.et_main_number);	}		public void submit(View v) {		//水平振动		Animation animation = AnimationUtils.loadAnimation(this, R.anim.shake);		et_main_number.startAnimation(animation);	}}
实现水平震动的须要以下xml文件支持

cycle_6.xml

shake.xml

你可能感兴趣的文章
代理模式
查看>>
vue文档阅读笔记——计算属性和侦听器
查看>>
单元测试系列:Mock工具之Mockito实战
查看>>
二手GTX650
查看>>
Guava学习-缓存
查看>>
hexSHA1散列加密解密(不可逆)
查看>>
Pinterest架构:两年内月PV从零到百亿 - 非常值得参考【转】 - HorsonJin - 博客园...
查看>>
Swift设置自动行高
查看>>
171. Excel Sheet Column Number
查看>>
简单深搜
查看>>
关于获取客户端Mac地址
查看>>
紫书 例题 10-9 UVa 1636 (概率计算)
查看>>
51nod 01背包
查看>>
outlook anywhere 配置
查看>>
冲刺一 (day 3)
查看>>
Beep使用
查看>>
关于php网络爬虫phpspider。
查看>>
OpenGL的glRotatef旋转变换函数详解
查看>>
c#中 ==与equals有什么区别
查看>>
Oracle Group By ROLLUP-SubTotal
查看>>