当前位置:  编程技术>移动开发
本页文章导读:
    ▪Mars视频札记——Animation(3)        Mars视频笔记——Animation(3)   Animations的使用(3)   1 AnimationSet的使用方法 什么是AnimationSet 1 AnimationSet是Animation的子类 2 一个AnimationSet包含了一系列的Animation 3 针对AnimationSet设置一些Anim.........
    ▪ ant 途径风格 url        ant 路径风格 url ANT通配符有三种:通配符 说明 ? 匹配任何单字符 * 匹配0或者任意数量的字符 ** 匹配0或者更多的目录 例子:URL路径 说明 /app/*.x 匹配(Matches)所有在app路径下的.x文件 /app/p?tt.........
    ▪ 进球弹出提示效果       进球弹出提醒效果 最近研究UIView动画,对比分在线客户端使用了很多UIView动画效果。一直以来都是使用UIView animateWithDuration实现UIView动画,但是这种模式无法实现连续动,每个UIView只能同.........

[1]Mars视频札记——Animation(3)
    来源: 互联网  发布时间: 2014-02-18
Mars视频笔记——Animation(3)

 

Animations的使用(3)

 

1 AnimationSet的使用方法

什么是AnimationSet

1 AnimationSet是Animation的子类

2 一个AnimationSet包含了一系列的Animation

3 针对AnimationSet设置一些Animation的常见属性(如StartOffset,duration等),可以被包含在AnimationSet当中的Animation继承

使用步骤:(类似1中的例子 只不过含有2个动画效果)

 

	AnimationSet animationSet = new AnimationSet(ture);
	AlpahaAnimation alpha = new AlphaAnimation(...);
	RotateAnimation rotate = new RotateAnimation(...);
	animationSet.addAnimation(alpha);
	animationSet.addAnimaion(rotate);
	animationSet.setDuration(2000);
	animationSet.setStartOffset(500);
	imageView.startAnimation(animationSet);
 

 

2 Interpolator的使用方法

Interpolator定义了动画变化速率,在Animations框架中定义了以下几种Interpolator

 

AccelerateDecelerateInterpolator:在动画开始和结束的地方速率变化较慢,中间的时候加速

AccelerateInterpolator:在动画开始的地方速率改变较慢,然后加速

CycleInterpolator:动画循环播放特定次数,速率改变沿正弦曲线

DecelerateInterpolator:在动画开始的地方速率改变较慢,然后减速

LinearInterpolator:以均匀的速率改变

设置的地方就在set标签中的 android:interpolator="@android:anim/accelerate_interpolator"

而之后还有一个android:shareInterpolator="true" 从名字就可以看到这是为set中所有的动画设置Interpolator

如果要单独设置 则将shareInterpolator设为false 然后为每个动画中单独定义Interpolator

以上是在xml中设置,如果要在代码中设置

animationSet.setInterpolator(new AccelerateInterpolator());(也可以单独设置)

注意在AnimationSet的构造方法中有一个boolean参数,这个参数就是shareInterpolator的设定

3 Frame-By-Frame Animations的使用方法

1 在res/drawable中创建一个xml文件,定义Animation的动画播放序列 anim_nv.xml

	<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
		android:oneshot="false">
		<item android:drawable="@drawable/nv1"
			android:duration="500" />
		<item android:drawable="@drawable/nv2"
			android:duration="500" />
		<item android:drawable="@drawable/nv3"
			android:duration="500" />
		<item android:drawable="@drawable/nv4"
			android:duration="500" />
	</animation-list>

2 为ImageView设置背景资源

	imageView.setBackgroundResource(R.drawable.anim_nv);

3 通过ImageView得到AnimationDrawable

	AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getBackground();

3 执行动画

	animationDrawable.start();
 

 


    
[2] ant 途径风格 url
    来源: 互联网  发布时间: 2014-02-18
ant 路径风格 url
ANT通配符有三种:

通配符 说明
? 匹配任何单字符
* 匹配0或者任意数量的字符
** 匹配0或者更多的目录


例子:

URL路径 说明
/app/*.x 匹配(Matches)所有在app路径下的.x文件
/app/p?ttern 匹配(Matches) /app/pattern 和 /app/pXttern,但是不包括/app/pttern
/**/example 匹配(Matches) /app/example, /app/foo/example, 和 /example
/app/**/dir/file. 匹配(Matches) /app/dir/file.jsp, /app/foo/dir/file.html,/app/foo/bar/dir/file.pdf, 和 /app/dir/file.java
/**/*.jsp 匹配(Matches)任何的.jsp 文件


属性:
最长匹配原则(has more characters)
说明,URL请求/app/dir/file.jsp,现在存在两个路径匹配模式/**/*.jsp和/app/dir/*.jsp,那么会根据模式/app/dir/*.jsp来匹配

    
[3] 进球弹出提示效果
    来源: 互联网  发布时间: 2014-02-18
进球弹出提醒效果
最近研究UIView动画,对比分在线客户端使用了很多UIView动画效果。



一直以来都是使用UIView animateWithDuration实现UIView动画,但是这种模式无法实现连续动,每个UIView只能同步播放,由于刚接触iOS开发,一直找不到解决方法,网上找了许多都是使用CAKeyframeAnimation来实现,虽然CAKeyframeAnimation网上实现起来更简单,但我觉得还是有点麻烦。于是自己扩展了UIView实现连续动画,就是一段动画运行完毕后调用另一段动画,保证两段动画没有重叠。

大概有两种方法可以选择:
1.增加延迟以便在第一段动画结束之后在启动第二段动画([performSelector:withObject:afterDelay:])

2.指定动画委托回调(animationDidStop:finished:context:)

从编程的角度来说就更容易,下面我们将扩展类UIView的方法,通过类别引入一个新的方法----commitModalAnimations.调用此方法而不是调用commitAnimations方法,它会建立一个新的runloop,该循环只有在动画结束的时候才会停止。这样确保了commitModalAnimations方法只有在动画结束才将控制权返还给调用方法,利用此扩展方法可以将动画块按顺序放进代码中,不必做任何其他的修改就能避免动画的重叠现象。

@interface UIView (ModalAnimationHelper)
+ (void) commitModalAnimations;
@end



@interface UIViewDelegate : NSObject
{
	CFRunLoopRef currentLoop;
}
@end


@implementation UIViewDelegate
-(id) initWithRunLoop: (CFRunLoopRef)runLoop 
{
	if (self = [super init]) currentLoop = runLoop;
	return self;
}

-(void) animationFinished: (id) sender
{
	CFRunLoopStop(currentLoop);
}
@end

@implementation UIView (ModalAnimationHelper)
+ (void) commitModalAnimations
{
	CFRunLoopRef currentLoop = CFRunLoopGetCurrent();
	
	UIViewDelegate *uivdelegate = [[UIViewDelegate alloc] initWithRunLoop:currentLoop];
	[UIView setAnimationDelegate:uivdelegate];
	[UIView setAnimationDidStopSelector:@selector(animationFinished:)];
	[UIView commitAnimations];
	CFRunLoopRun();
	[uivdelegate release];
}
@end


以后这样调用就可以了:
-(void) displayAnimate{	
	self.alpha = 1;
	CGRect _frame = self.frame;
	_frame.origin.x = -100;
	self.frame = _frame;

	[UIView beginAnimations:nil context:nil];
	[UIView setAnimationDuration:0.15];
	_frame.origin.x = x+100;
	self.frame = _frame;
	self.alpha = 0;
	[UIView commitModalAnimations];

	
	[UIView beginAnimations:nil context:nil];
	[UIView setAnimationDuration:0.15];
	_frame.origin.x = x;
	self.frame = _frame;
	self.alpha = 1;
	[UIView commitModalAnimations];	
}

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3