Android左右滚动字幕,上下滚动字幕,跑马灯

先上效果图

  • 这里是可以直接测试的apk和源码
    在这里插入图片描述
    网盘自取
    链接:https://pan.baidu.com/s/1qduv8U1Y_xPBfazylMmtag
    提取码:swpl

  • 使用了大佬的view
    https://github.com/AnyLifeZLB/ScrollTextView

  • 主要修改了上下滚动的代码

  /**
     * scroll text vertical
     *
     * @author liuliu  2020/4/24
     */
    private void drawVerticalScroll() {
        List strings = new ArrayList<>();
        int start = 0, end = 0;
        while (end < text.length()) {
            while (paint.measureText(text.substring(start, end)) < viewWidth && end < text.length()) {
                end++;
            }
            if (end == text.length()) {
                strings.add(text.substring(start, end));
                break;
            } else {
                end--;
                strings.add(text.substring(start, end));
                start = end;
            }
        }
        int tt = (int) (Math.ceil(textSize * text.length()));//计算所有字应该有的长度

        for (float i = viewHeight; i > -tt; i = i - 3) {
            if (stopScroll || isSetNewText) {
                return;
            }
            Canvas canvas = surfaceHolder.lockCanvas();
            canvas.drawColor(Color.TRANSPARENT, Mode.CLEAR);
            for (int ii = 0; ii < text.length(); ii++)
                if (ii < text.length() - 1) {//循环添加字
                    canvas.drawText(strings.get(ii), 0, i + textSize * (ii + 1), paint);
                } else {
                    canvas.drawText(" ", 0, i + textSize * (ii + 1), paint);
                }
            surfaceHolder.unlockCanvasAndPost(canvas);
        }
    }
  • 如何使用
    1.将这个copy到自己的项目Android左右滚动字幕,上下滚动字幕,跑马灯_第1张图片
    2.参考以下代码
 scrollTextView = (ScrollTextView) view.findViewById(R.id.aaa);
        scrollTextView.setText("而另一些白宫官员则抵制这种做法,他们怕激怒中国,以致中国政府拒绝出口医疗用品、药品,以及共享对疫苗研制有用的科学研究。两派的争论贯穿美国防疫的整个过程……");
        scrollTextView.setSpeed(14);//设置速度
      //  scrollTextView.setTextSize(80);
        if(mParam1.equals("0"))
            scrollTextView.setHorizontal(false);//水平滚动
        else{
            scrollTextView.setHorizontal(true);//垂直滚动
            scrollTextView.setSpeed(2);//设置速度
        }

你可能感兴趣的:(安卓笔记)