Android滚动字幕公告字过长时横向滚动控件

Android滚动字幕公告字过长时横向滚动控件

效果

字体长度过大滚动字体,结束后上下滚动公告控件

字长滚动后切换公告

Gradle

repositories { 
    maven { url "https://jitpack.io" }
} 
dependencies {
    implementation 'com.github.cyh120190774:ScrollNoticeView:1.00'
}

使用

xml

      <com.cyh.scrollnoticeview.ScrollNoticeView
            android:id="@+id/tv_notice1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginEnd="10dp"
            app:nsvInterval="3000"
            app:nsvTextColor="#4071FF"
            app:nsvTextSize="12sp" />

Java

      binding.tvNotice1.start(Arrays.asList(notices));
        binding.tvNotice1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, notices[binding.tvNotice1.getIndex()], Toast.LENGTH_SHORT).show();
            }
        });

属性

    <declare-styleable name="ScrollNoticeView">
        <!-- 图标 -->
        <attr name="nsvIcon" format="reference" />
        <!-- 图标与内容的间隙 -->
        <attr name="nsvIconPadding" format="dimension" />
        <!-- 图标颜色 -->
        <attr name="nsvIconTint" format="color" />
        <!-- 文本尺寸 -->
        <attr name="nsvTextSize" format="dimension" />
        <!-- 文本颜色 -->
        <attr name="nsvTextColor" format="color" />
        <!-- 文本最大行数 -->
        <attr name="nsvTextMaxLines" format="integer" />
        <!-- 切换动画间隔时间,毫秒 -->
        <attr name="nsvInterval" format="integer" />
        <!-- 切换动画持续时间,毫秒 -->
        <attr name="nsvDuration" format="integer" />
        <!-- 文字滚动速度 负数为向右-->
        <attr name="nsvSpeed" format="integer" />
        <!-- 文字开始滚动的延时-->
        <attr name="nsvDelay" format="integer" />
    </declare-styleable>

地址

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要实现自适应长度的横向滚动公告,可以使用CSS3的flex布局和marquee标签。具体步骤如下: 1. 使用一个div元素作为容器,设置宽度为100%、高度为固定值,并且设置overflow属性为hidden,使内容超过div大被隐藏。 2. 在div容器内部创建一个ul元素,并使用CSS3的flex布局,设置flex-wrap属性为nowrap,使ul元素内部的li元素无法换行。 3. 对ul元素设置white-space属性为nowrap,使ul元素内部的文本不换行。 4. 对li元素设置display:inline-block,使li元素能够在一行内显示。 5. 使用marquee标签来实现横向滚动的效果,并将marquee标签内部的内容设置为ul元素。 6. 通过CSS3的media query来实现不同屏幕尺寸下的适配。 下面是示例代码: HTML代码: ``` <div class="notice-container"> <marquee behavior="scroll" direction="left"> <ul class="notice-list"> <li>第一条公告信息</li> <li>第二条公告信息</li> <li>第三条公告信息</li> <li>第四条公告信息</li> <li>第五条公告信息</li> <li>第六条公告信息</li> <li>第七条公告信息</li> </ul> </marquee> </div> ``` CSS代码: ``` .notice-container { width: 100%; height: 50px; overflow: hidden; } .notice-list { display: flex; flex-wrap: nowrap; white-space: nowrap; } .notice-list > li { display: inline-block; } @media screen and (max-width: 768px) { .notice-list > li { font-size: 12px; } } @media screen and (min-width: 768px) and (max-width: 992px) { .notice-list > li { font-size: 14px; } } @media screen and (min-width: 992px) { .notice-list > li { font-size: 16px; } } ``` 通过上述步骤,就可以实现一个自适应长度的横向滚动公告了。可以根据需要调整容器的高度、文本的体大小、marquee标签的滚动速度等参数来适应不同的场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cola可洛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值