android zooming bitmap

    写之前,小小吐槽下今天的状态,super差了,老师给我们讲的是J2EE里面的web知识,可班上就我一人自学的移动开发,对他讲的完全不懂,还tomcat什么的,现在数据的传递不都是JSON么,还是我比较肤浅啦,虽然只是一个大三的学生,感觉学不到自己喜欢的东西

    今天我看了google官方的文档,有一个讲的不错,就是对bitmap做一个zooming,还是自由伸缩动画,感觉不错,就想练习自己写一个这样的动画,官方用的是属性动画animator,的确现在用animation比较少了.就用这个animator吧

    首先讲下这个动画效果,我也不知道怎么截图好,不过我在看人家博客都喜欢先看效果,然后考虑自己有米有方法实现,如果有就pass,可没有图片就不知道效果了,这里我也不截图了,代码比较少.

    首先,我们必须要掌握Objectanimator的用法,不知道的小伙伴可以洗洗睡了.

    功能实现:将位于(x1,y1)的图片,大小100*100,缩放到(200,300)位置,大小250*200,动画时间5s

    上代码:

ImageView image=(ImageView) findViewById(R.id.image);
  image.setPivotX(0f);    //设置中心为相对位置(0,0)
  image.setPivotY(0f);
  AnimatorSet set=new AnimatorSet();
  set.play(ObjectAnimator.ofFloat(image, View.X, image.getX(),200)).with(//View.X是X的属性名哦
    ObjectAnimator.ofFloat(image, View.Y, image.getY(),300)    //View.Y是Y的属性名哦
    ).with(
      ObjectAnimator.ofFloat(image, View.SCALE_X, 1f,1.5f)
      ).with(
        ObjectAnimator.ofFloat(image, View.SCALE_Y, 1f,2f)
        );
  set.setDuration(5000);
  set.setInterpolator(new DecelerateInterpolator());
  set.start();

这就是这个效果啦,果然属性动画还是比较好用的,我也就学了个View.Y,View.SCALE_X这几个常量,省得自己写属性名了,还容易出错

    相比官网那个对图片平移大小伸缩的效果算法上面还是自己的简单,官方只是我的逆运算,特别难懂

 

    tip:想要得到自定义大小图片的小伙伴可以使用官方给的建议,用BitmapFactory.options哦,在decode之前可别忘记inJustDecodeBounds为true哦.

    还有一种方法对图片大小处理的就是Bitmap.createScaledBitmap(src, dstWidth, dstHeight, filter),参数2与3就是想要得到图片的宽高,参数四表示是否对参数一过滤,建议把处理后的src给recycle()了

转载于:https://my.oschina.net/persuit/blog/406986

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值