Android 的ScaleAnimation 缩放动画基本运用

因为今天用到了ScaleAnimation缩放动画就写一下,加深一下印象。

用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坐标的开始位置

知道了这几个参数的作用就简单了。

首先先设置一个ScaleAnimation动画实例,再image = (ImageView)findViewById(R.id.xx),找到相应的图片id,再用
image.startAnimation(ScaleAnimation),将动画配置给image这样图片的动画就设置好了。
当然我们肯定要设置图片动画的启动事件的,不然图片怎么变化呢。
对了,我们还可以设置动画的一些属性,这里我就讲一下动画的缩放时间。要设置图片的缩放时间是用到ScaleAnimation的 setDuration()方法,里面放的是整型数,单位为毫秒。

最后贴上代码吧,新手上路,大牛请见谅。

public class MainActivity extends AppCompatActivity {
    private ImageView imageA,imageB;
    private ScaleAnimation sato0 = new ScaleAnimation(1,0,1,1, Animation.RELATIVE_TO_PARENT,0.5f,Animation.RELATIVE_TO_PARENT,0.5f);
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        findViewById(R.id.activity_main).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               if (imageA.getVisibility()==View.VISIBLE){
                   imageA.startAnimation(sato0);
               }else {
                   imageB.startAnimation(sato0);
               }
            }
        });
    }
    private void showImageA(){
        imageA.setVisibility(View.VISIBLE);
        imageB.setVisibility(View.GONE);
    }
    private void showImageB(){
        imageA.setVisibility(View.GONE);
        imageB.setVisibility(View.VISIBLE);
    }
    private void initView(){

        imageA= (ImageView) findViewById(R.id.ivA);
        imageB= (ImageView) findViewById(R.id.ivB);
        showImageA();
        sato0.setDuration(500);
        sato0.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {

            }
            @Override
            public void onAnimationEnd(Animation animation) {
                if (imageA.getVisibility()==View.VISIBLE){
                    showImageB();
                }else{
                    showImageA();
                }
            }
            @Override
            public void onAnimationRepeat(Animation animation) {


            }
        });

    }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值