当前位置: 首页 > 工具软件 > Zooming > 使用案例 >

android zooming bitmap

胡新
2023-12-01

    写之前,小小吐槽下今天的状态,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

 类似资料:

相关阅读

相关文章

相关问答