EditText悬浮标签动画实现

PS:篇幅都是自己的吐槽,烦的话,直接看底部代码,直接复制完事

emm...因为UI大佬给的需求缘故,你看要这样的,前面+86-文字是固定的,然后又想实现TextInput中EditText获取到焦点后hint悬浮作为标签显示,这咋搞,我去,一开始我当时第一反应也是说用自定义EditText手动绘制固定文本的方式+TextInputLayout来说实现这个效果。但是发现一个问题,emmm..可能太年轻了吧,弄完后发现这动画效果是实现了,但是hint悬浮的位置是在固定文字的右边出来的,但是这明显不符合需求呀!!

然后我就想着要不然不用官方那个TextInputLayout,自己整个都自己弄,然后就开始想那个动画咋搞了emm..开始以为是个平移+缩放动画,但是弄完后老感觉哪里不对,反正跟TextInputLayout所呈现的动画效果体验那就完全是2个东西了,后面又说看了TextInputLayout源码,盲猜它这个效果也是在获取焦点后进行的动画,于是全局搜onFocusChange之类,然后emm..没搜到,尴尬了,然后没搜到,那我说搜Anim,总有吧,我就不信你动画都不写这,然后给搜到了

还是说盲猜,哈哈,看名字说像是说扩展hint动画啥的,点进去这个方法看,然后看到一个熟悉的动画了

其实当时看到这还是很懵圈的,因为下面的代码我就直接懵了,emm..还是自己看代码水平不够,然后我又说继续去百度上搜其他类似的资源,功夫不负有心人呀,哈哈,给我搜到了一个类似的,https://blog.csdn.net/shiki60215/article/details/79214060,然后去底下文章链接看了里头源码,发现里头就只封装了一个FloatingLabelEditText,还是老办法,点进去全局搜onFocus,哈哈给搜到了没想到,emm..果然不是每个人封装的都可以跟谷歌大佬一样严谨(虽然这样看源码难度提升了不少喂!)

这个代码就很好理解了,不解释了哈,直接点进去看动画咋实现的,

emm..得,又遇到盲点了,但是2个动画都是说借鉴了属性动画来实现的,然后emm..可能刚睡过中午觉吧,脑子比较灵活点,因为睡前一直在纠结这个动画嘛,想着的是这个动画会不会不是平移,而是说只是对字体大小进行改变实现的,然后就好奇的自己试了试,马沙克,居然还真的是,哈哈,具体代码实现:

      ValueAnimator valueAnimator=new ValueAnimator();
                    valueAnimator.setFloatValues(15,11);
                    valueAnimator.setDuration(200);
                    valueAnimator.setInterpolator(new DecelerateInterpolator());
                    valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                        @Override
                        public void onAnimationUpdate(ValueAnimator animation) {
                            tv_hint_guest.setTextSize((Float) animation.getAnimatedValue());
                        }
                    });
                    valueAnimator.start();

猜你喜欢

转载自blog.csdn.net/z936689039/article/details/115397842
今日推荐