必威体育Betway必威体育官网
当前位置:首页 > IT技术

Android 动画之ScaleAnimation应用详解

时间:2019-06-08 08:43:15来源:IT技术作者:seo实验室小编阅读:76次「手机版」
 

scaleanimation

  1. Android中提供了4中动画:
  2. AlphaAnimation透明度动画效果
  3. scaleanimation缩放动画效果
  4. translateanimation位移动画效果
  5. RotateAnimation旋转动画效果
  6. 本节讲解ScaleAnimation动画,
  7. ScaleAnimation(floatfromX,floattoX,floatfromY,floattoY,intpivotXType,floatpivotXValue,intpivotYType,floatpivotYValue)
  8. 参数说明:
  9. 复制代码代码如下:
  10. floatfromX动画起始时X坐标上的伸缩尺寸
  11. floattoX动画结束时X坐标上的伸缩尺寸
  12. floatfromY动画起始时Y坐标上的伸缩尺寸
  13. floattoY动画结束时Y坐标上的伸缩尺寸
  14. intpivotXType动画在X轴相对于物件位置类型
  15. floatpivotXValue动画相对于物件的X坐标的开始位置
  16. intpivotYType动画在Y轴相对于物件位置类型
  17. floatpivotYValue动画相对于物件的Y坐标的开始位置
  18. 代码:
  19. 复制代码代码如下:
  20. publicclassMainActivityextendsActivity{
  21. ImageViewimage;
  22. Buttonstart;
  23. Buttoncancel;
  24. @Override
  25. publicvoidonCreate(BundlesavedinstanceState){
  26. super.onCreate(savedInstanceState);
  27. setcontentView(R.layout.activity_main);
  28. image=(ImageView)findViewById(R.id.main_img);
  29. start=(Button)findViewById(R.id.main_start);
  30. cancel=(Button)findViewById(R.id.main_cancel);
  31. /**设置缩放动画*/
  32. finalScaleAnimationanimation=newScaleAnimation(0.0f,1.4f,0.0f,1.4f,
  33. Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
  34. animation.setDuration(2000);//设置动画持续时间
  35. /**常用方法*/
  36. //animation.setRepeatCount(intrepeatCount);//设置重复次数
  37. //animation.setFillAfter(boolean);//动画执行完后是否停留在执行完的状态
  38. //animation.setStartoffset(longstartOffset);//执行前的等待时间
  39. start.setOnClickListener(newOnClickListener(){
  40. publicvoidonClick(Viewarg0){
  41. image.setAnimation(animation);
  42. /**开始动画*/
  43. animation.startNow();
  44. }
  45. });
  46. cancel.setOnClickListener(newOnClickListener(){
  47. publicvoidonClick(Viewv){
  48. /**结束动画*/
  49. animation.cancel();
  50. }
  51. });
  52. }
  53. }

[java]view plaincopy print?在CODE上查看代码片派生到我的代码片

  1. 本节讲解ScaleAnimation动画,
  2. ScaleAnimation(floatfromX,floattoX,floatfromY,floattoY,intpivotXType,floatpivotXValue,intpivotYType,floatpivotYValue)
  3. 参数说明:
  4. 复制代码代码如下:
  5. floatfromX动画起始时X坐标上的伸缩尺寸
  6. floattoX动画结束时X坐标上的伸缩尺寸
  7. floatfromY动画起始时Y坐标上的伸缩尺寸
  8. floattoY动画结束时Y坐标上的伸缩尺寸
  9. intpivotXType动画在X轴相对于物件位置类型
  10. floatpivotXValue动画相对于物件的X坐标的开始位置
  11. intpivotYType动画在Y轴相对于物件位置类型
  12. floatpivotYValue动画相对于物件的Y坐标的开始位置
  13. 代码:
  14. 复制代码代码如下:
  15. publicclassMainActivityextendsActivity{
  16. ImageViewimage;
  17. Buttonstart;
  18. Buttoncancel;
  19. @Override
  20. publicvoidonCreate(BundlesavedInstanceState){
  21. super.onCreate(savedInstanceState);
  22. setContentView(R.layout.activity_main);
  23. image=(ImageView)findViewById(R.id.main_img);
  24. start=(Button)findViewById(R.id.main_start);
  25. cancel=(Button)findViewById(R.id.main_cancel);
  26. /**设置缩放动画*/
  27. finalScaleAnimationanimation=newScaleAnimation(0.0f,1.4f,0.0f,1.4f,
  28. Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
  29. animation.setDuration(2000);//设置动画持续时间
  30. /**常用方法*/
  31. //animation.setRepeatCount(intrepeatCount);//设置重复次数
  32. //animation.setFillAfter(boolean);//动画执行完后是否停留在执行完的状态
  33. //animation.setStartOffset(longstartOffset);//执行前的等待时间
  34. start.setOnClickListener(newOnClickListener(){
  35. publicvoidonClick(Viewarg0){
  36. image.setAnimation(animation);
  37. /**开始动画*/
  38. animation.startNow();
  39. }
  40. });
  41. cancel.setOnClickListener(newOnClickListener(){
  42. publicvoidonClick(Viewv){
  43. /**结束动画*/
  44. animation.cancel();
  45. }
  46. });
  47. }
  48. }

[JavaScript]view plaincopy print?在CODE上查看代码片派生到我的代码片

[javascript]view plaincopy print?在CODE上查看代码片派生到我的代码片

  1. 本节讲解RotateAnimation动画,
  2. RotateAnimation(floatfromDegrees,floattoDegrees,intpivotXType,floatpivotXValue,intpivotYType,floatpivotYValue)
  3. 参数说明:
  4. floatfromDegrees:旋转的开始角度。
  5. floattoDegrees:旋转的结束角度。
  6. intpivotXType:X轴的伸缩模式,可以取值为absolute、RELATIVE_TO_SELF、RELATIVE_TO_parent
  7. floatpivotXValue:X坐标的伸缩值。
  8. intpivotYType:Y轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。
  9. floatpivotYValue:Y坐标的伸缩值。
  10. 代码:
  11. <pclass="codetitle"><spanstyle="CURSOR:pointer"><u>复制代码</u></span>代码如下:</p><pid="code17269"class="codebody">
  12. publicclassMainActivityextendsActivity{
  13. ImageViewimage;
  14. Buttonstart;
  15. Buttoncancel;
  16. @Override
  17. publicvoidonCreate(BundlesavedInstanceState){
  18. super.onCreate(savedInstanceState);
  19. setContentView(R.layout.activity_main);
  20. image=(ImageView)findViewById(R.id.main_img);
  21. start=(Button)findViewById(R.id.main_start);
  22. cancel=(Button)findViewById(R.id.main_cancel);
  23. /**设置旋转动画*/
  24. finalRotateAnimationanimation=newRotateAnimation(0f,360f,Animation.RELATIVE_TO_SELF,
  25. 0.5f,Animation.RELATIVE_TO_SELF,0.5f);
  26. animation.setDuration(3000);//设置动画持续时间
  27. /**常用方法*/
  28. //animation.setRepeatCount(intrepeatCount);//设置重复次数
  29. //animation.setFillAfter(boolean);//动画执行完后是否停留在执行完的状态
  30. //animation.setStartOffset(longstartOffset);//执行前的等待时间
  31. start.setOnClickListener(newOnClickListener(){
  32. publicvoidonClick(Viewarg0){
  33. image.setAnimation(animation);
  34. /**开始动画*/
  35. animation.startNow();
  36. }
  37. });
  38. cancel.setOnClickListener(newOnClickListener(){
  39. publicvoidonClick(Viewv){
  40. /**结束动画*/
  41. animation.cancel();
  42. }
  43. });
  44. }
  45. }</p>

[javascript]view plaincopy print?在CODE上查看代码片派生到我的代码片

  1. 本节讲解TranslateAnimation动画,TranslateAnimation比较常用,比如QQ,网易新闻菜单条的动画,就可以用TranslateAnimation实现,
  2. 通过TranslateAnimation(floatfromXDelta,floattoXDelta,floatfromYDelta,floattoYDelta)来定义动画
  3. 参数说明:
  4. <pclass="codetitle"><spanstyle="CURSOR:pointer"><u>复制代码</u></span>代码如下:</p><pid="code3207"class="codebody">
  5. floatfromXDelta动画开始的点离当前ViewX坐标上的差值
  6. floattoXDelta动画结束的点离当前ViewX坐标上的差值
  7. floatfromYDelta动画开始的点离当前ViewY坐标上的差值
  8. floattoYDelta动画开始的点离当前ViewY坐标上的差值
  9. </p>
  10. 常用方法:
  11. <pclass="codetitle"><spanstyle="CURSOR:pointer"><u>复制代码</u></span>代码如下:</p><pid="code94921"class="codebody">
  12. animation.setDuration(longdurationMillis);//设置动画持续时间
  13. animation.setRepeatCount(inti);//设置重复次数
  14. animation.setRepeatMode(Animation.REVERSE);//设置反方向执行
  15. </p>
  16. Xml属性:
  17. <pclass="codetitle"><spanstyle="CURSOR:pointer"><u>复制代码</u></span>代码如下:</p><pid="code72894"class="codebody">
  18. android:duration:运行动画的时间
  19. android:repeatCount:定义动画重复的时间
  20. </p>
  21. 代码:
  22. <pclass="codetitle"><spanstyle="CURSOR:pointer"><u>复制代码</u></span>代码如下:</p><pid="code12415"class="codebody">
  23. publicclassMainActivityextendsActivity{
  24. ImageViewimage;
  25. Buttonstart;
  26. Buttoncancel;
  27. @Override
  28. publicvoidonCreate(BundlesavedInstanceState){
  29. super.onCreate(savedInstanceState);
  30. setContentView(R.layout.activity_main);
  31. image=(ImageView)findViewById(R.id.main_img);
  32. start=(Button)findViewById(R.id.main_start);
  33. cancel=(Button)findViewById(R.id.main_cancel);
  34. /**设置位移动画向右位移150*/
  35. finalTranslateAnimationanimation=newTranslateAnimation(0,150,0,0);
  36. animation.setDuration(2000);//设置动画持续时间
  37. animation.setRepeatCount(2);//设置重复次数
  38. animation.setRepeatMode(Animation.REVERSE);//设置反方向执行
  39. start.setOnClickListener(newOnClickListener(){
  40. publicvoidonClick(Viewarg0){
  41. image.setAnimation(animation);
  42. /**开始动画*/
  43. animation.startNow();
  44. }
  45. });
  46. cancel.setOnClickListener(newOnClickListener(){
  47. publicvoidonClick(Viewv){
  48. /**结束动画*/
  49. animation.cancel();
  50. }
  51. });
  52. }
  53. }</p><pclass="codebody"></p><pclass="codebody"></p><pclass="codebody"></p><pclass="codebody"></p>

[javascript]view plaincopy print?在CODE上查看代码片派生到我的代码片

  1. <precode_snippet_id="94243"snippet_file_name="blog_20131203_1_5890611"class="java"name="code">本节讲解AlphaAnimation动画,窗口的动画效果,淡入淡出什么的,有些游戏的欢迎动画,logo的淡入淡出效果就使用AlphaAnimation。
  2. 直接看代码:
  3. 复制代码代码如下:
  4. publicclassMainActivityextendsActivity{
  5. ImageViewimage;
  6. Buttonstart;
  7. Buttoncancel;
  8. @Override
  9. publicvoidonCreate(BundlesavedInstanceState){
  10. super.onCreate(savedInstanceState);
  11. setContentView(R.layout.activity_main);
  12. image=(ImageView)findViewById(R.id.main_img);
  13. start=(Button)findViewById(R.id.main_start);
  14. cancel=(Button)findViewById(R.id.main_cancel);
  15. /**设置透明度渐变动画*/
  16. finalAlphaAnimationanimation=newAlphaAnimation(1,0);
  17. animation.setDuration(2000);//设置动画持续时间
  18. /**常用方法*/
  19. //animation.setRepeatCount(intrepeatCount);//设置重复次数
  20. //animation.setFillAfter(boolean);//动画执行完后是否停留在执行完的状态
  21. //animation.setStartOffset(longstartOffset);//执行前的等待时间
  22. start.setOnClickListener(newOnClickListener(){
  23. publicvoidonClick(Viewarg0){
  24. image.setAnimation(animation);
  25. /**开始动画*/
  26. animation.startNow();
  27. }
  28. });
  29. cancel.setOnClickListener(newOnClickListener(){
  30. publicvoidonClick(Viewv){
  31. /**结束动画*/
  32. animation.cancel();
  33. }
  34. });
  35. }
  36. }</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>
  37. <pre></pre>
  38. <p></p>
  39. <p></p>
  40. <p></p>
  41. <p></p>
  42. <p></p>
  43. <p></p>
  44. <pre></pre>

相关阅读

MPAndroidChart3使用详解5:PieChart(饼状图)

1 方法总览 1.1 百分值角度 返回类型 方法 描述 void setUsePercentValues(boole

哔哩哔哩iOS动画版产品体验报告

产品应该给予用户一个围城,在能照顾好城里居民的情况下去扩张才是合理的,高质量的用户能够给予产品更多的潜力。一、体验环境体验产

Android手机之间实现屏幕共享

已经实现,优化空间还很大。 效果Gif 原理: 方法一:A手机不停的调用系统截图,将得到的数据压缩后不停的Socket发送至服务器,服务器

史上最全的安卓修炼之路Android开发视频教程安卓软件

获取地址:http://programmer.ischoolbar.com/index.php/article/article/id/92.html

Android自定义View(三、深入解析控件测量onMeasure)

本文出自:【openXu的博客】  在上一篇博客中我们比较深入的探讨了自定义属性。首先,我们把自定义View的步骤搬上来,一切按套路干

分享到:

栏目导航

推荐阅读

热门阅读