iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android自定义跑马灯文字效果
  • 952
分享到

Android自定义跑马灯文字效果

跑马灯Android 2022-06-06 22:06:11 952人浏览 八月长安
摘要

本文实例为大家分享了Android自定义跑马灯文字的具体代码,供大家参考,具体内容如下 Android 跑马灯效果文字: 效果图(真实动画很流畅,这个转gif有问题,感觉有点卡

本文实例为大家分享了Android自定义跑马灯文字的具体代码,供大家参考,具体内容如下

Android 跑马灯效果文字:

效果图(真实动画很流畅,这个转gif有问题,感觉有点卡):

代码:



public class MarqueeHorizontalTextView extends AppCompatTextView {
  private float textLength = 0f;
  private float drawTextX = 0f;// 文本的横坐标
  public boolean isStarting = false;// 是否开始滚动
  private Paint paint = null;
  private String text = "";
  private long waitTime = 1000; //开始时等待的时间
  private int scrollTile = 2; //文字的滚动速度
  private int baseline;
  public MarqueeHorizontalTextView(Context context) {
    super(context);
    initView(context);
  }
  public MarqueeHorizontalTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
    initView(context);
  }
  public MarqueeHorizontalTextView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    initView(context);
  }
  private void initView(Context context) {
    setMaxWidth(context.getResources().getDisplayMetrics().widthPixels / 2); //因为需求需要所以设置了最大宽度,如果不需要此功能可以删除掉
    paint = getPaint();
    paint.setColor(getTextColors().getColorForState(getDrawableState(), 0));
    text = getText().toString();
    if (TextUtils.isEmpty(text)) {
      return;
    }
    textLength = paint.measureText(text);
    isStarting = true;
  }
  @Override
  public void setTextColor(int color) {
    super.setTextColor(color);
    paint.setColor(color);
    start();
  }
  @Override
  public void setText(CharSequence text, BufferType type) {
    super.setText(text, type);
    this.text = text.toString();
    this.textLength = getPaint().measureText(text.toString());
    drawTextX = 0;
    start();
  }
  public void start() {
    isStarting = true;
    invalidate();
  }
  public void stop() {
    isStarting = false;
    invalidate();
  }
  @Override
  public void onDraw(canvas canvas) {
    final Paint.FontMetricsInt fontMetrics = paint.getFontMetricsInt();
    baseline = (canvas.getHeight() - fontMetrics.bottom - fontMetrics.top) / 2;
    if (textLength <= canvas.getWidth()) {
      canvas.drawText(text, 0, baseline, paint);
      return;
    }
    canvas.drawText(text, -drawTextX, baseline, paint);
    if (!isStarting) {
      return;
    }
    if (drawTextX == 0) {
      postDelayed(() -> {
        drawTextX = 1;
        isStarting = true;
        invalidate();
      }, waitTime);
      isStarting = false;
      return;
    }
    drawTextX += scrollTile;
    //判断是否滚动结束
    if (drawTextX > textLength) {
      drawTextX = -canvas.getWidth();
    }
    invalidate();
  }
}
您可能感兴趣的文章:Android 中TextView中跑马灯效果的实现方法Android TextView实现跑马灯效果的方法Android实现跑马灯效果的方法Android自定义View实现竖直跑马灯效果案例解析Android实现图文垂直跑马灯效果Android中使用TextView实现文字跑马灯效果Android自定义textview实现竖直滚动跑马灯效果Android基于TextView不获取焦点实现跑马灯效果Android跑马灯MarqueeView源码解析android自定义View实现跑马灯效果


--结束END--

本文标题: Android自定义跑马灯文字效果

本文链接: https://www.lsjlt.com/news/29952.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android自定义textview如何实现竖直滚动跑马灯效果
    这篇文章主要为大家展示了Android自定义textview如何实现竖直滚动跑马灯效果,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。xml布局<&#63;xml version=...
    99+
    2023-05-31
    android textview roi
  • Android自定义可控制速度的跑马灯
    背景 原生的TextView是支持跑马灯效果的,但是在项目中实际用了之后,达不到需求,原因是内容滚动太慢,速度无法调节。因此,需要自定义一个可以调节速度的跑马灯。 思路 目前实现的思...
    99+
    2024-04-02
  • js如何实现文字跑马灯效果
    这篇文章将为大家详细讲解有关js如何实现文字跑马灯效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码如下<!doctype html> <...
    99+
    2024-04-02
  • Android文本视图TextView实现跑马灯效果
    本文实例为大家分享了Android文本视图TextView实现跑马灯效果的具体代码,供大家参考,具体内容如下 MainActivity package com.example.j...
    99+
    2024-04-02
  • Android如何实现图文垂直跑马灯效果
    这篇文章将为大家详细讲解有关Android如何实现图文垂直跑马灯效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。最近在维护老项目,老项目有一个地方需要修改,就是垂直跑马灯的问题,之前的垂直跑马灯是只有文...
    99+
    2023-05-30
    android
  • 小程序怎么实现文字跑马灯效果
    本篇内容主要讲解“小程序怎么实现文字跑马灯效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“小程序怎么实现文字跑马灯效果”吧!wxml<view>1 显示完后再显示</view...
    99+
    2023-06-26
  • Android用TextView实现跑马灯效果代码
    目录【前言】一、新手设置跑马灯效果【关键点讲解】【总结】二、高端玩家设置跑马灯效果三、延伸阅读总结【前言】      在Textvi...
    99+
    2024-04-02
  • Android实现跑马灯效果的方式有
    本篇内容介绍了“Android实现跑马灯效果的方式有”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一种:较简单,但是局限性强,貌似只能从右...
    99+
    2023-06-20
  • Vue3实现跑马灯效果
    本文实例为大家分享了Vue3实现跑马灯效果的具体代码,供大家参考,具体内容如下 先看效果: html部分代码 <div class="app">            ...
    99+
    2024-04-02
  • 基于React.js实现简单的文字跑马灯效果
    刚好手上有一个要实现文字跑马灯的react项目,然后ant-design上面没有这个组件,于是只能自己手撸一个。 我想到的最简单的方法,就是定位啦,定时移动这个文字块不就跑起来了。 ...
    99+
    2023-01-14
    React实现文字跑马灯效果 React文字跑马灯 React跑马灯
  • Android实现循环轮播跑马灯的效果
    目录先看效果池化思路创造工厂轮询切换动画监听对外能力完整代码先看效果 支持暂停,恢复,view自定义和池化回收复用。使用上,只需要引入xml,并绑定factory即可,内部会在a...
    99+
    2023-05-18
    Android实现循环轮播跑马灯效果 Android实现跑马灯 Android跑马灯
  • Android中怎么用TextView实现跑马灯效果
    这篇“Android中怎么用TextView实现跑马灯效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Android中怎么...
    99+
    2023-06-29
  • vue如何实现文字上下滚动跑马灯效果
    Vue可以通过CSS动画和Vue的过渡效果来实现文字上下滚动的跑马灯效果。以下是一个示例代码:```vue{{ text }}...
    99+
    2023-08-08
    vue
  • Android自定义Span实现文字渐变效果
    目录前言ForegroundColorSpan解析文本颜色动画渐变样式实现小结前言 Android提供一些Span设置文本样式外,开发者若希望实现一些新特性也是能自定义开发实现的。只...
    99+
    2024-04-02
  • android中怎么利用TextView实现跑马灯效果
    这篇文章给大家介绍android中怎么利用TextView实现跑马灯效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、要点设置四个属性android:singleLine="true"andro...
    99+
    2023-05-31
    android textview
  • Android用过TextView实现跑马灯效果的示例
    以前就遇到过这个问题,今天重新拾起来。跑马灯效果其实就是当文字超过TextView控件宽度的时候,使用滚动的方式显示出来:方法1:(直接xml搞定)Android系统中TextView实现跑马灯效果,必须具备以下几个条件: android:...
    99+
    2023-05-30
    textview 跑马灯 roi
  • Vue如何实现跑马灯效果
    这篇文章主要介绍Vue如何实现跑马灯效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!跑马灯效果说明:单击"应援"按钮文字向左飘动,再单击"暂停"按钮停止当前飘动完整代码 (注...
    99+
    2023-06-25
  • 小程序实现跑马灯效果
    本文实例为大家分享了小程序实现跑马灯效果的具体代码,供大家参考,具体内容如下 先看效果图 实现步骤: index.wxml文件 <!-- 跑马灯效果 --> <v...
    99+
    2024-04-02
  • Vue如何实现文字过长隐藏跑马灯自动滚动的效果
    这篇文章主要讲解了“Vue如何实现文字过长隐藏跑马灯自动滚动的效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue如何实现文字过长隐藏跑马灯自动滚动的效果”吧!一、基本原理跑马灯效果的原...
    99+
    2023-07-06
  • Unity3d实现跑马灯广播效果
    本文实例为大家分享了Unity3d实现跑马灯广播效果的具体代码,供大家参考,具体内容如下 废话不多说,直接上代码 using DG.Tweening; using System.Co...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作