scaleanimation
- Android中提供了4中动画:
- AlphaAnimation透明度动画效果
- scaleanimation缩放动画效果
- translateanimation位移动画效果
- RotateAnimation旋转动画效果
- 本节讲解ScaleAnimation动画,
- ScaleAnimation(floatfromX,floattoX,floatfromY,floattoY,intpivotXType,floatpivotXValue,intpivotYType,floatpivotYValue)
- 参数说明:
- 复制代码代码如下:
- floatfromX动画起始时X坐标上的伸缩尺寸
- floattoX动画结束时X坐标上的伸缩尺寸
- floatfromY动画起始时Y坐标上的伸缩尺寸
- floattoY动画结束时Y坐标上的伸缩尺寸
- intpivotXType动画在X轴相对于物件位置类型
- floatpivotXValue动画相对于物件的X坐标的开始位置
- intpivotYType动画在Y轴相对于物件位置类型
- floatpivotYValue动画相对于物件的Y坐标的开始位置
- 代码:
- 复制代码代码如下:
- publicclassMainActivityextendsActivity{
- ImageViewimage;
- Buttonstart;
- Buttoncancel;
- @Override
- publicvoidonCreate(BundlesavedinstanceState){
- super.onCreate(savedInstanceState);
- setcontentView(R.layout.activity_main);
- image=(ImageView)findViewById(R.id.main_img);
- start=(Button)findViewById(R.id.main_start);
- cancel=(Button)findViewById(R.id.main_cancel);
- /**设置缩放动画*/
- finalScaleAnimationanimation=newScaleAnimation(0.0f,1.4f,0.0f,1.4f,
- Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
- animation.setDuration(2000);//设置动画持续时间
- /**常用方法*/
- //animation.setRepeatCount(intrepeatCount);//设置重复次数
- //animation.setFillAfter(boolean);//动画执行完后是否停留在执行完的状态
- //animation.setStartoffset(longstartOffset);//执行前的等待时间
- start.setOnClickListener(newOnClickListener(){
- publicvoidonClick(Viewarg0){
- image.setAnimation(animation);
- /**开始动画*/
- animation.startNow();
- }
- });
- cancel.setOnClickListener(newOnClickListener(){
- publicvoidonClick(Viewv){
- /**结束动画*/
- animation.cancel();
- }
- });
- }
- }
- 本节讲解ScaleAnimation动画,
- ScaleAnimation(floatfromX,floattoX,floatfromY,floattoY,intpivotXType,floatpivotXValue,intpivotYType,floatpivotYValue)
- 参数说明:
- 复制代码代码如下:
- floatfromX动画起始时X坐标上的伸缩尺寸
- floattoX动画结束时X坐标上的伸缩尺寸
- floatfromY动画起始时Y坐标上的伸缩尺寸
- floattoY动画结束时Y坐标上的伸缩尺寸
- intpivotXType动画在X轴相对于物件位置类型
- floatpivotXValue动画相对于物件的X坐标的开始位置
- intpivotYType动画在Y轴相对于物件位置类型
- floatpivotYValue动画相对于物件的Y坐标的开始位置
- 代码:
- 复制代码代码如下:
- publicclassMainActivityextendsActivity{
- ImageViewimage;
- Buttonstart;
- Buttoncancel;
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- image=(ImageView)findViewById(R.id.main_img);
- start=(Button)findViewById(R.id.main_start);
- cancel=(Button)findViewById(R.id.main_cancel);
- /**设置缩放动画*/
- finalScaleAnimationanimation=newScaleAnimation(0.0f,1.4f,0.0f,1.4f,
- Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
- animation.setDuration(2000);//设置动画持续时间
- /**常用方法*/
- //animation.setRepeatCount(intrepeatCount);//设置重复次数
- //animation.setFillAfter(boolean);//动画执行完后是否停留在执行完的状态
- //animation.setStartOffset(longstartOffset);//执行前的等待时间
- start.setOnClickListener(newOnClickListener(){
- publicvoidonClick(Viewarg0){
- image.setAnimation(animation);
- /**开始动画*/
- animation.startNow();
- }
- });
- cancel.setOnClickListener(newOnClickListener(){
- publicvoidonClick(Viewv){
- /**结束动画*/
- animation.cancel();
- }
- });
- }
- }
[JavaScript]view plaincopy print?
[javascript]view plaincopy print?
- 本节讲解RotateAnimation动画,
- RotateAnimation(floatfromDegrees,floattoDegrees,intpivotXType,floatpivotXValue,intpivotYType,floatpivotYValue)
- 参数说明:
- floatfromDegrees:旋转的开始角度。
- floattoDegrees:旋转的结束角度。
- intpivotXType:X轴的伸缩模式,可以取值为absolute、RELATIVE_TO_SELF、RELATIVE_TO_parent。
- floatpivotXValue:X坐标的伸缩值。
- intpivotYType:Y轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。
- floatpivotYValue:Y坐标的伸缩值。
- 代码:
- <pclass="codetitle"><spanstyle="CURSOR:pointer"><u>复制代码</u></span>代码如下:</p><pid="code17269"class="codebody">
- publicclassMainActivityextendsActivity{
- ImageViewimage;
- Buttonstart;
- Buttoncancel;
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- image=(ImageView)findViewById(R.id.main_img);
- start=(Button)findViewById(R.id.main_start);
- cancel=(Button)findViewById(R.id.main_cancel);
- /**设置旋转动画*/
- finalRotateAnimationanimation=newRotateAnimation(0f,360f,Animation.RELATIVE_TO_SELF,
- 0.5f,Animation.RELATIVE_TO_SELF,0.5f);
- animation.setDuration(3000);//设置动画持续时间
- /**常用方法*/
- //animation.setRepeatCount(intrepeatCount);//设置重复次数
- //animation.setFillAfter(boolean);//动画执行完后是否停留在执行完的状态
- //animation.setStartOffset(longstartOffset);//执行前的等待时间
- start.setOnClickListener(newOnClickListener(){
- publicvoidonClick(Viewarg0){
- image.setAnimation(animation);
- /**开始动画*/
- animation.startNow();
- }
- });
- cancel.setOnClickListener(newOnClickListener(){
- publicvoidonClick(Viewv){
- /**结束动画*/
- animation.cancel();
- }
- });
- }
- }</p>
[javascript]view plaincopy print?
- 本节讲解TranslateAnimation动画,TranslateAnimation比较常用,比如QQ,网易新闻菜单条的动画,就可以用TranslateAnimation实现,
- 通过TranslateAnimation(floatfromXDelta,floattoXDelta,floatfromYDelta,floattoYDelta)来定义动画
- 参数说明:
- <pclass="codetitle"><spanstyle="CURSOR:pointer"><u>复制代码</u></span>代码如下:</p><pid="code3207"class="codebody">
- floatfromXDelta动画开始的点离当前ViewX坐标上的差值
- floattoXDelta动画结束的点离当前ViewX坐标上的差值
- floatfromYDelta动画开始的点离当前ViewY坐标上的差值
- floattoYDelta动画开始的点离当前ViewY坐标上的差值
- </p>
- 常用方法:
- <pclass="codetitle"><spanstyle="CURSOR:pointer"><u>复制代码</u></span>代码如下:</p><pid="code94921"class="codebody">
- animation.setDuration(longdurationMillis);//设置动画持续时间
- animation.setRepeatCount(inti);//设置重复次数
- animation.setRepeatMode(Animation.REVERSE);//设置反方向执行
- </p>
- Xml属性:
- <pclass="codetitle"><spanstyle="CURSOR:pointer"><u>复制代码</u></span>代码如下:</p><pid="code72894"class="codebody">
- android:duration:运行动画的时间
- android:repeatCount:定义动画重复的时间
- </p>
- 代码:
- <pclass="codetitle"><spanstyle="CURSOR:pointer"><u>复制代码</u></span>代码如下:</p><pid="code12415"class="codebody">
- publicclassMainActivityextendsActivity{
- ImageViewimage;
- Buttonstart;
- Buttoncancel;
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- image=(ImageView)findViewById(R.id.main_img);
- start=(Button)findViewById(R.id.main_start);
- cancel=(Button)findViewById(R.id.main_cancel);
- /**设置位移动画向右位移150*/
- finalTranslateAnimationanimation=newTranslateAnimation(0,150,0,0);
- animation.setDuration(2000);//设置动画持续时间
- animation.setRepeatCount(2);//设置重复次数
- animation.setRepeatMode(Animation.REVERSE);//设置反方向执行
- start.setOnClickListener(newOnClickListener(){
- publicvoidonClick(Viewarg0){
- image.setAnimation(animation);
- /**开始动画*/
- animation.startNow();
- }
- });
- cancel.setOnClickListener(newOnClickListener(){
- publicvoidonClick(Viewv){
- /**结束动画*/
- animation.cancel();
- }
- });
- }
- }</p><pclass="codebody"></p><pclass="codebody"></p><pclass="codebody"></p><pclass="codebody"></p>
[javascript]view plaincopy print?
- <precode_snippet_id="94243"snippet_file_name="blog_20131203_1_5890611"class="java"name="code">本节讲解AlphaAnimation动画,窗口的动画效果,淡入淡出什么的,有些游戏的欢迎动画,logo的淡入淡出效果就使用AlphaAnimation。
- 直接看代码:
- 复制代码代码如下:
- publicclassMainActivityextendsActivity{
- ImageViewimage;
- Buttonstart;
- Buttoncancel;
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- image=(ImageView)findViewById(R.id.main_img);
- start=(Button)findViewById(R.id.main_start);
- cancel=(Button)findViewById(R.id.main_cancel);
- /**设置透明度渐变动画*/
- finalAlphaAnimationanimation=newAlphaAnimation(1,0);
- animation.setDuration(2000);//设置动画持续时间
- /**常用方法*/
- //animation.setRepeatCount(intrepeatCount);//设置重复次数
- //animation.setFillAfter(boolean);//动画执行完后是否停留在执行完的状态
- //animation.setStartOffset(longstartOffset);//执行前的等待时间
- start.setOnClickListener(newOnClickListener(){
- publicvoidonClick(Viewarg0){
- image.setAnimation(animation);
- /**开始动画*/
- animation.startNow();
- }
- });
- cancel.setOnClickListener(newOnClickListener(){
- publicvoidonClick(Viewv){
- /**结束动画*/
- animation.cancel();
- }
- });
- }
- }</pre><precode_snippet_id="94243"snippet_file_name="blog_20131203_1_5890611"class="java"name="code"></pre><precode_snippet_id="94243"snippet_file_name="blog_20131203_1_5890611"class="java"name="code"></pre><precode_snippet_id="94243"snippet_file_name="blog_20131203_1_5890611"class="java"name="code"></pre><precode_snippet_id="94243"snippet_file_name="blog_20131203_1_5890611"class="java"name="code"></pre><precode_snippet_id="94243"snippet_file_name="blog_20131203_1_5890611"class="java"name="code"></pre><precode_snippet_id="94243"snippet_file_name="blog_20131203_1_5890611"class="java"name="code"></pre><precode_snippet_id="94243"snippet_file_name="blog_20131203_1_5890611"class="java"name="code"></pre><precode_snippet_id="94243"snippet_file_name="blog_20131203_1_5890611"class="java"name="code"></pre><precode_snippet_id="94243"snippet_file_name="blog_20131203_1_5890611"class="java"name="code"></pre><precode_snippet_id="94243"snippet_file_name="blog_20131203_1_5890611"class="java"name="code"></pre><br>
- <pre></pre>
- <p></p>
- <p></p>
- <p></p>
- <p></p>
- <p></p>
- <p></p>
- <pre></pre>
相关阅读
MPAndroidChart3使用详解5:PieChart(饼状图)
1 方法总览 1.1 百分值角度 返回类型 方法 描述 void setUsePercentValues(boole
产品应该给予用户一个围城,在能照顾好城里居民的情况下去扩张才是合理的,高质量的用户能够给予产品更多的潜力。一、体验环境体验产
已经实现,优化空间还很大。 效果Gif 原理: 方法一:A手机不停的调用系统截图,将得到的数据压缩后不停的Socket发送至服务器,服务器
获取地址:http://programmer.ischoolbar.com/index.php/article/article/id/92.html
Android自定义View(三、深入解析控件测量onMeasure)
本文出自:【openXu的博客】 在上一篇博客中我们比较深入的探讨了自定义属性。首先,我们把自定义View的步骤搬上来,一切按套路干