自定义控件之侧边滚动TextView

看到直播当中左侧边有字体一滑一滑的就感兴趣了,自己做了一个

效果图:

BUG:目前动画播放有些问题
9ec3d6f788a94842d65e8dd8493f916.jpg
20190523_093903.gif

关于字体的大小测量

每个字体的大小 * 多少个字 = 总字体长度 (字母和数字一般比汉字小1/2)

代码:

 /**
     * 计量文字总宽度
     *
     * @param content
     */
    private void calculateString(String content) {


        char[] chars = content.toCharArray();

        int temp = 0;

        for (int i = 0; i < chars.length; i++) {

            //判断是否是 a-z
            if (chars[i] > 'a' && chars[i] < 'z') {
                temp += (textFontSize / 2);
                continue;
            }
            //判断是否是 A-Z
            if (chars[i] > 'A' && chars[i] < 'Z') {
                temp += (textFontSize / 2);
                continue;
            }
            //判断是否是 0-9
            if (chars[i] > '0' && chars[i] < '9') {
                temp += (textFontSize / 2);
                continue;
            }
            temp += textFontSize;

        }
        textSizeWidth = temp;

    }

使用:

  slidingTextView.setText("文字");
   slidingTextView.accAnimation();

动画是使用滚动器(Scroller) + Handler实现的

代码:https://github.com/hanxinhao000/TextViewApp/tree/master

你可能感兴趣的:(自定义控件之侧边滚动TextView)