美文网首页
Android属性动画,关于宽度和高度变化的方案

Android属性动画,关于宽度和高度变化的方案

作者: kongzue | 来源:发表于2017-07-18 09:18 被阅读1555次

这个不是坑,只是挺难查的。
一般情况下想搞个属性动画,用 ObjectAnimation 就行,在我写的 BaseActivity 中可以直接调用,调用方法如下:

moveAnimation(Object obj, String perference, float aimValue)

但是遇到要修改 View 的 Width 和 Height 的话就着急了,此时可以使用 ObjectAnimation 的如下方法来进行动画效果:

    public void doAnim(View view, String po, int value) {
        ViewWrapper viewWrapper = new ViewWrapper(view);
        ObjectAnimator.ofInt(viewWrapper, po, value).setDuration(300).start();
    }

    private class ViewWrapper {

        private View rView;

        public ViewWrapper(View target) {
            rView = target;
        }

        public int getWidth() {
            return rView.getLayoutParams().width;
        }

        public void setWidth(int width) {
            rView.getLayoutParams().width = width;
            rView.requestLayout();
        }

        public int getHeight() {
            return rView.getLayoutParams().height;
        }

        public void setHeight(int height) {
            rView.getLayoutParams().height = height;
            rView.requestLayout();
        }
    }

其中 view 是布局,value 是改变数值,time 是持续时间。
重写了 width 和 height 的 get 和 set 方法,保证能修改布局的宽高。
通过上述代码执行完动画后,即可修改view布局的宽度和高度,也就是说区别以往的 ScaleAnimation 的是实际可以改变view的宽高属性的。
下个版本的BaseActivity将集成此方法。

以上。

相关文章

网友评论

      本文标题:Android属性动画,关于宽度和高度变化的方案

      本文链接:https://www.haomeiwen.com/subject/oaeckxtx.html