Android基础之动画

Android动画有两种Tween(形变动画)和Frame(帧动画),使用时可以在res\anim路径下创建动画的xml,也可以代码实现。
Tween里包含了:
Scale:缩放动画、Rotate:旋转动画、Translate:移动动画、Alpha::透明渐变动画
Scale:

<scale>标签为缩放节点  
android:fromXscale="1.0" 表示开始时X轴缩放比例为 1.0 (原图大小 * 1.0 为原图大小)  
android:toXscale="0.0"   表示结束时X轴缩放比例为0.0(原图大小 *0.0 为缩小到看不见)  
android:fromYscale="1.0" 表示开始时Y轴缩放比例为 1.0 (原图大小 * 1.0 为原图大小)  
android:toYscale="0.0"   表示结束时Y轴缩放比例为0.0(原图大小 *0.0 为缩小的看不到了)  
android:pivotX="50%"     X轴缩放的位置为中心点  
android:pivotY="50%"     Y轴缩放的位置为中心点  
android:duration="2000"  动画播放时间 这里是2000毫秒也就是2秒

scaleAnimation =  new ScaleAnimation(0.0f, 1.0f, 0.0f,  1.0f,  
                  Animation.RELATIVE_TO_SELF, 0.5f,    
                  Animation.RELATIVE_TO_SELF, 0.5f);    
scaleAnimation.setDuration(2000); 

Rotate:

<rotate>标签为旋转节点  
Tween一共为我们提供了3种动画渲染模式。  
android:interpolator="@android:anim/accelerate_interpolator" 设置动画渲染器为加速动画(动画播放中越来越快)  
android:interpolator="@android:anim/decelerate_interpolator" 设置动画渲染器为减速动画(动画播放中越来越慢)  
android:interpolator="@android:anim/accelerate_decelerate_interpolator" 设置动画渲染器为先加速在减速(开始速度最快 逐渐减慢)  
如果不写的话 默认为匀速运动  
android:fromDegrees="+360"设置动画开始的角度  
android:toDegrees="0"设置动画结束的角度  

rotateAnimation = new RotateAnimation(360.0f, 0.0f,  
        Animation.RELATIVE_TO_SELF, 0.5f,    
        Animation.RELATIVE_TO_SELF, 0.5f);              
rotateAnimation.setDuration(2000);  

Translate:

<translate>标签为缩放节点  
 android:fromXDelta="0"    x起始
 android:toXDelta="320"    x结束
 android:fromYDelta="0"    y起始
 android:toYDelta="480"    y结束
 android:duration="2000"    间隔
 android:repeatCount="infinite"   重复次数

 translateAnimation = new TranslateAnimation(0, 320, 0, 480);  
 translateAnimation.setDuration(2000); 

Alpha::

<alpha>标签为alpha透明度节点  
android:fromAlpha="1.0" 设置动画起始透明度为1.0 表示完全不透明  
android:toAlpha="0.0"设置动画结束透明度为0.0 表示完全透明  
也就是说alpha的取值范围为0.0 - 1.0 之间 

alphaAnimation = new AlphaAnimation(1.0f, 0.0f);   
alphaAnimation.setDuration(2000);   

提一下AnimationSet,这是一个动画集合可以放多个动画,控制动画的播放顺序,以上几个动画都可以添加监听,常用的是动画结束监听。

Frame动画:
AnimationDrawable 继承于Drawable

<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">  
 <item android:drawable="@drawable/a" android:duration="100" />   
 <item android:drawable="@drawable/b" android:duration="100" />   
 <item android:drawable="@drawable/c" android:duration="100" />   
 <item android:drawable="@drawable/d" android:duration="100" />   
 <item android:drawable="@drawable/e" android:duration="100" />   
 <item android:drawable="@drawable/f" android:duration="100" />   
 <item android:drawable="@drawable/g" android:duration="100" />   
 <item android:drawable="@drawable/h" android:duration="100" />   
 <item android:drawable="@drawable/i" android:duration="100" />   
 <item android:drawable="@drawable/j" android:duration="100" />   
 </animation-list> 

animationDrawable = new AnimationDrawable();
int duration = 70;
animationDrawable.addFrame(getDrawable(R.drawable.ic_pull_refresh_1), duration);
animationDrawable.addFrame(getDrawable(R.drawable.ic_pull_refresh_2), duration);
animationDrawable.addFrame(getDrawable(R.drawable.ic_pull_refresh_3), duration);
animationDrawable.addFrame(getDrawable(R.drawable.ic_pull_refresh_4), duration);
animationDrawable.addFrame(getDrawable(R.drawable.ic_pull_refresh_5), duration);
animationDrawable.setOneShot(false);
imageView.setImageDrawable(animationDrawable);

/**
animationDrawable.start(); 开始这个动画
animationDrawable.stop(); 结束这个动画
animationDrawable.setAlpha(100);设置动画的透明度, 取值范围(0 - 255)
animationDrawable.setOneShot(true); 设置单次播放
animationDrawable.setOneShot(false); 设置循环播放
animationDrawable.isRunning(); 判断动画是否正在播放
animationDrawable.getNumberOfFrames(); 得到动画的帧数。
*/
计及风电并网运行的微电网及集群电动汽车综合需求侧响应的优化调度策略研究(Matlab代码实现)内容概要:本文研究了计及风电并网运行的微电网及集群电动汽车综合需求侧响应的优化调度策略,并提供了基于Matlab的代码实现。研究聚焦于在高渗透率可再生能源接入背景下,如何协调微电网内部分布式电源、储能系统与大规模电动汽车充电负荷之间的互动关系,通过引入需求侧响应机制,建立多目标优化调度模型,实现系统运行成本最小化、可再生能源消纳最大化以及电网负荷曲线的削峰填谷。文中详细阐述了风电出力不确定性处理、电动汽车集群充放电行为建模、电价型与激励型需求响应机制设计以及优化求解算法的应用。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事新能源、微电网、电动汽车等领域技术研发的工程师。; 使用场景及目标:①用于复现相关硕士论文研究成果,深入理解含高比例风电的微电网优化调度建模方法;②为开展电动汽车参与电网互动(V2G)、需求侧响应等课题提供仿真平台和技术参考;③适用于电力系统优化、能源互联网、综合能源系统等相关领域的教学与科研项目开发。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注模型构建逻辑与算法实现细节,同时可参考文档中提及的其他相关案例(如储能优化、负荷预测等),以拓宽研究视野并促进交叉创新。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值