android 评论框 缩小/放大

作者: 一个冬季 | 来源:发表于2019-07-05 14:15 被阅读94次
知识点学习地址

https://blog.csdn.net/ringopaul/article/details/52597109

图片.gif
需求

1、点击文本输入框,文本输入框整体拉长,右边的布局消失不见
2、点击空白的地方要进行还原的操作

开发期间遇见的问题

1、由于float类型和int类型的精度不同,会导致有些许误差,主要是因为etEditLayoutParams.width类型是int类型,所以在转换的时候会丢失进度,比如最后几次增加的dist是0.85748,在int类型下直接是0了,所以宽度就没那么宽了。那么我们就可以考虑进行四舍五入
2、当初我设置constraintLayout.setTranslationX,里面存放int类型,导致不能很好的展示数据,所以我们再设置值的时候需要设置float类型

总结

1、TextView在xml里面设置Width=100px,marginLeft=20px,textView.getWidth()为100px
2、在xml里面父布局是LinearLayout,子布layout_width=0dp,layout_weight=1,子view.getLayoutParams().width获取的宽度是0,只能通过子view.getWidth()才能获取到宽度
3、setTranslationX是属于属性动画,会改变点击位置
4、layoutParams.height 可以跟view.getHeight()不同,第一个是期望多高,第二个是最后显示在屏幕上真实的高度

部分代码展示
 /**
     * @date: 2019/7/4 0004
     * @author: gaoxiaoxiong
     * @description: 输入框展开
     **/
    private void etTextToExpand() {
        final int[] constrainStart = {defaultConsoleLayout};
        ValueAnimator valueAnimator = ValueAnimator.ofFloat(0.0f, 1.0f);
        valueAnimator.setDuration(animatorDurtime);
        valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                float currentValue = (float) animation.getAnimatedValue();//0---->1逐渐变大
                float toSmalScale = 1 - currentValue;
                float dist = constrainStart[0] - (constrainStart[0] * toSmalScale);//每次增加的量
//这里进行4舍五入的目的是为了保存缩小后的最大值,这样的误差才是最小的,用户看着不会别扭
                constrainStart[0] = Math.round(constrainStart[0] * toSmalScale);//4舍五入
                constraintLayout.setTranslationX(constraintLayout.getTranslationX() + dist);
                //扩大
                LinearLayout.LayoutParams etEditLayoutParams = (LinearLayout.LayoutParams) etFlowDetail.getLayoutParams();
                etEditLayoutParams.width = etEditLayoutParams.width + Math.round(dist);//这里需要对每次增加的量进行四舍五入,因为它会直接影响到我最后的宽度因素
                etFlowDetail.setLayoutParams(etEditLayoutParams);
            }
        });
        valueAnimator.addListener(new Animator.AnimatorListener() {
            @Override
            public void onAnimationStart(Animator animation) {

            }

            @Override
            public void onAnimationEnd(Animator animation) {
                anmoIsLoading = false;
            }

            @Override
            public void onAnimationCancel(Animator animation) {

            }

            @Override
            public void onAnimationRepeat(Animator animation) {

            }
        });
        valueAnimator.start();
    }

github地址
https://github.com/caocao123/TestAndroid

相关文章

  • android 评论框 缩小/放大

    知识点学习地址 https://blog.csdn.net/ringopaul/article/details/5...

  • 商超登录界面设计

    一、界面效果图 二、登录界面功能介绍1、登录界面出现在屏幕正中央,并不可被放大或缩小(效果图中可看到无放大缩小框)...

  • 商超登录界面设计

    一、界面效果图 二、登录界面功能介绍 1、登录界面出现在屏幕正中央,并不可被放大或缩小(效果图中可看到无放大缩小框...

  • 037 Python语法之pywin32

    窗口显示隐藏 窗口放大缩小 MessageBox():系统弹框 MessageBox函数详解 参数1代表系统,暂时...

  • ios-CropImageView-图片和裁剪框都能放大缩小移动

    特点:图片能移动,放大缩小。裁剪框能移动,自由拉伸。移动过程中裁剪框不会超出图片的范围。不在裁剪框里面会有黑色透明...

  • Android 放大缩小图片查看

    点击查看图片,可放大缩小,再次点击时关闭。 先上效果图,没图说个cz!!! 实现方法: 1.添加依赖 在build...

  • Android 放大缩小容器-ScalableViewConta

    前言 作为一个Android开发,当系统控件满足不了业务需求的时候,就需要程序猿自己自定义控件或者容器。所以自定义...

  • 222天--放大和缩小2022-08-21

    222天--放大和缩小2022-08-21 ?放大与缩小? 把困难放大,恩典缩小,你就是一个痛苦的人。 把恩典放大...

  • ue

    搜索框 加语音标志 清除功能× 长按文字 复制 查询选中 将摘录分享到微信 全选 手势 放大缩小 ...

  • 20161216 Day11/35 爱丽丝群04-梦在云端【专注

    任务一: 用时 : 1"15.54' 任务二: 1.我用手机看,用手指将图片放大缩小、放大缩小、放大缩小……这样这...

网友评论

    本文标题:android 评论框 缩小/放大

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