TextView设置跑马灯效果

TextView设置跑马灯效果,第1张

TextView设置跑马灯效果 需求分析实现效果具体实现android.xml代码关键属性介绍 android.xml用到的background资源.java业务代码

需求

实现视频上方文字滚动效果

android跑马灯效果

分析

可使用TextView来实现这个跑马灯效果

实现效果

文字底部设置灰色透明背景显示,名称以及奖励金额使用高亮色号显示

TextView跑马灯效果示例

具体实现 android.xml代码
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    
    <TextView
        android:id="@+id/tv_head_effect"
        android:layout_width="200dp"
        android:layout_height="30dp"
        android:layout_gravity="center"
        android:gravity="center"
        android:ellipsize="marquee"
        android:singleLine="true"
        android:marqueeRepeatLimit="marquee_forever"
        android:text="恭喜玩家XXX成功提现100元"
        android:textColor="#FFFFFF"
        android:textSize="12sp"
        android:textStyle="bold"
        android:background="@drawable/head_effect_shape"/>

</FrameLayout>
关键属性介绍
android:ellipsize="marquee" //设置跑马灯显示效果
android:singleLine="true" //必须单行显示
android:marqueeRepeatLimit="marquee_forever" //实现无限循环
android.xml用到的background资源

Android实现页面渐变效果

.java业务代码
package com.fungame.activity;

import android.graphics.Color;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.TextPaint;
import android.text.style.ClickableSpan;
import android.view.View;
import android.widget.TextView;
import com.fungame.R;
import androidx.annotation.NonNull;

public class HeadEffectActivity extends BaseActivity {

    private TextView tv_head_effect;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_head_effect);

        tv_head_effect = findViewById(R.id.tv_head_effect);

        String[] userNameArr = {"依依", "丫丫", "张三", "尼古拉斯赵四", "虎虎生威",
                "六六大顺", "琪琪", "八八大发", "九九归一", "十全十美"};
        String[] moneyArr = {"100", "200", "300", "400", "500",
                "600", "700", "800", "900", "1000"};

        String str = "";
        String s = "";
        SpannableString spannableStr = null;
        SpannableString spannableS = null;
        SpannableStringBuilder spannableStringBuilder = null;
        SpannableStringBuilder ssb = new SpannableStringBuilder();

        for (int i = 0; i < userNameArr.length; i++) {
            spannableStringBuilder = new SpannableStringBuilder("恭喜玩家");
            str = userNameArr[i];
            s = moneyArr[i];
            spannableStr = new SpannableString(str);
            spannableS = new SpannableString(s);
            spannableStr.setSpan(new ClickableSpan() {
                @Override
                public void onClick(View widget) {
                }

                // 重写显示状态
                @Override
                public void updateDrawState(@NonNull TextPaint ds) {
                    ds.setColor(Color.parseColor("#FF00FF"));
                }
            }, 0, str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

            spannableS.setSpan(new ClickableSpan() {
                @Override
                public void onClick(@NonNull View widget) {
                }

                @Override
                public void updateDrawState(TextPaint ds) {
                    ds.setColor(Color.parseColor("#FF00FF"));
                }
            }, 0, s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

            spannableStringBuilder.append(spannableStr);
            spannableStringBuilder.append("成功提现");
            spannableStringBuilder.append(spannableS);
            spannableStringBuilder.append("元");
            spannableStringBuilder.append("                                                                  ");
            ssb.append(spannableStringBuilder);
        }

        tv_head_effect.setSelected(true);
        tv_head_effect.setText(ssb);
        tv_head_effect.invalidate();
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/992518.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存