zoukankan      html  css  js  c++  java
  • 位移,缩放,旋转,透明度 动画

    android中提供了4中动画:   
    AlphaAnimation 透明度动画效果   
    ScaleAnimation 缩放动画效果   
    TranslateAnimation 位移动画效果   
    RotateAnimation 旋转动画效果   
      
    本节讲解ScaleAnimation 动画,   
    ScaleAnimation(float fromX, float toX, float fromY, float toY,int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)   
    参数说明:   
      
    复制代码 代码如下:  
      
    float fromX 动画起始时 X坐标上的伸缩尺寸   
    float toX 动画结束时 X坐标上的伸缩尺寸   
    float fromY 动画起始时Y坐标上的伸缩尺寸   
    float toY 动画结束时Y坐标上的伸缩尺寸   
    int pivotXType 动画在X轴相对于物件位置类型   
    float pivotXValue 动画相对于物件的X坐标的开始位置   
    int pivotYType 动画在Y轴相对于物件位置类型   
    float pivotYValue 动画相对于物件的Y坐标的开始位置   
      
      
    代码:   
      
    复制代码 代码如下:  
      
    public class MainActivity extends Activity {   
    ImageView image;   
    Button start;   
    Button cancel;   
    @Override   
    public void onCreate(Bundle savedInstanceState) {   
    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);   
    /** 设置缩放动画 */   
    final ScaleAnimation animation =new ScaleAnimation(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(int repeatCount);//设置重复次数   
    //animation.setFillAfter(boolean);//动画执行完后是否停留在执行完的状态   
    //animation.setStartOffset(long startOffset);//执行前的等待时间   
    start.setOnClickListener(new OnClickListener() {   
    public void onClick(View arg0) {   
    image.setAnimation(animation);   
    /** 开始动画 */   
    animation.startNow();   
    }   
    });   
    cancel.setOnClickListener(new OnClickListener() {   
    public void onClick(View v) {   
    /** 结束动画 */   
    animation.cancel();   
    }   
    });   
    }   
    }  
    本节讲解ScaleAnimation 动画,   
    ScaleAnimation(float fromX, float toX, float fromY, float toY,int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)   
    参数说明:   
    复制代码 代码如下:  
    float fromX 动画起始时 X坐标上的伸缩尺寸   
    float toX 动画结束时 X坐标上的伸缩尺寸   
    float fromY 动画起始时Y坐标上的伸缩尺寸   
    float toY 动画结束时Y坐标上的伸缩尺寸   
    int pivotXType 动画在X轴相对于物件位置类型   
    float pivotXValue 动画相对于物件的X坐标的开始位置   
    int pivotYType 动画在Y轴相对于物件位置类型   
    float pivotYValue 动画相对于物件的Y坐标的开始位置   
      
    代码:   
    复制代码 代码如下:  
    public class MainActivity extends Activity {   
    ImageView image;   
    Button start;   
    Button cancel;   
    @Override   
    public void onCreate(Bundle savedInstanceState) {   
    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);   
    /** 设置缩放动画 */   
    final ScaleAnimation animation =new ScaleAnimation(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(int repeatCount);//设置重复次数   
    //animation.setFillAfter(boolean);//动画执行完后是否停留在执行完的状态   
    //animation.setStartOffset(long startOffset);//执行前的等待时间   
    start.setOnClickListener(new OnClickListener() {   
    public void onClick(View arg0) {   
    image.setAnimation(animation);   
    /** 开始动画 */   
    animation.startNow();   
    }   
    });   
    cancel.setOnClickListener(new OnClickListener() {   
    public void onClick(View v) {   
    /** 结束动画 */   
    animation.cancel();   
    }   
    });   
    }   
    }  
    本节讲解RotateAnimation 动画,   
    RotateAnimation (float fromDegrees, float toDegrees, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)   
    参数说明:   
    float fromDegrees:旋转的开始角度。   
    float toDegrees:旋转的结束角度。   
    int pivotXType:X轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。   
    float pivotXValue:X坐标的伸缩值。   
    int pivotYType:Y轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。   
    float pivotYValue:Y坐标的伸缩值。   
    代码:   
    <div class="codetitle"><span style="CURSOR: pointer"><u>复制代码</u></span> 代码如下:</div><div id="code17269" class="codebody">  
    public class MainActivity extends Activity {   
    ImageView image;   
    Button start;   
    Button cancel;   
    @Override   
    public void onCreate(Bundle savedInstanceState) {   
    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);   
    /** 设置旋转动画 */   
    final RotateAnimation animation =new RotateAnimation(0f,360f,Animation.RELATIVE_TO_SELF,   
    0.5f,Animation.RELATIVE_TO_SELF,0.5f);   
    animation.setDuration(3000);//设置动画持续时间   
    /** 常用方法 */   
    //animation.setRepeatCount(int repeatCount);//设置重复次数   
    //animation.setFillAfter(boolean);//动画执行完后是否停留在执行完的状态   
    //animation.setStartOffset(long startOffset);//执行前的等待时间   
    start.setOnClickListener(new OnClickListener() {   
    public void onClick(View arg0) {   
    image.setAnimation(animation);   
    /** 开始动画 */   
    animation.startNow();   
    }   
    });   
    cancel.setOnClickListener(new OnClickListener() {   
    public void onClick(View v) {   
    /** 结束动画 */   
    animation.cancel();   
    }   
    });   
    }   
    }
    public class MainActivity extends Activity {
    ImageView image;
    Button start;
    Button cancel;
    @Override
    public void onCreate(Bundle savedInstanceState) {
    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);
    /** 设置透明度渐变动画 */
    final AlphaAnimation animation = new AlphaAnimation(1, 0);
    animation.setDuration(2000);//设置动画持续时间
    /** 常用方法 */
    //animation.setRepeatCount(int repeatCount);//设置重复次数
    //animation.setFillAfter(boolean);//动画执行完后是否停留在执行完的状态
    //animation.setStartOffset(long startOffset);//执行前的等待时间
    start.setOnClickListener(new OnClickListener() {
    public void onClick(View arg0) {
    image.setAnimation(animation);
    /** 开始动画 */
    animation.startNow();
    }
    });
    cancel.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
    /** 结束动画 */
    animation.cancel();
    }
    });
    }
    }
    float fromXDelta 动画开始的点离当前View X坐标上的差值 
    float toXDelta 动画结束的点离当前View X坐标上的差值
    float fromYDelta 动画开始的点离当前View Y坐标上的差值
    float toYDelta 动画开始的点离当前View Y坐标上的差值

    animation.setDuration(long durationMillis);//设置动画持续时间
    animation.setRepeatCount(int i);//设置重复次数
    animation.setRepeatMode(Animation.REVERSE);//设置反方向执行

    android:duration:运行动画的时间
    android:repeatCount:定义动画重复的时间

    public
    class MainActivity extends Activity { ImageView image; Button start; Button cancel; @Override public void onCreate(Bundle savedInstanceState) { 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 */ final TranslateAnimation animation = new TranslateAnimation(0, 150,0, 0); animation.setDuration(2000);//设置动画持续时间 animation.setRepeatCount(2);//设置重复次数 animation.setRepeatMode(Animation.REVERSE);//设置反方向执行 start.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { image.setAnimation(animation); /** 开始动画 */ animation.startNow(); } }); cancel.setOnClickListener(new OnClickListener() { public void onClick(View v) { /** 结束动画 */ animation.cancel(); } }); } }
  • 相关阅读:
    CentOS7 64位下MySQL5.7安装与配置
    Linux CentOS7.0下JAVA安装和配置环境变量
    在MySQL中使用explain查询SQL的执行计划
    ionic3中使用自定义配置
    RabbitMQ发布订阅实战-实现延时重试队列
    springboot 项目mybatis plus 设置 jdbcTypeForNull (oracle数据库需配置JdbcType.NULL, 默认是Other)
    Python之Mysql及SQLAlchemy操作总结
    数据库分库分表思路
    RPC框架实践之:Apache Thrift
    vue使用watch 观察路由变化,重新获取内容
  • 原文地址:https://www.cnblogs.com/xiaoli3007/p/4335277.html
Copyright © 2011-2022 走看看