TextView实现跑马灯效果

本文详细介绍了如何在有限空间内使用TextView实现跑马灯滚动文本效果。通过设置XML属性及Activity代码,确保重要信息不被截断,实现无限循环滚动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经常使用TextView会出现这样的情况,有限的空间内只能写一行,然后导致好多文字...,如图:
1218227-20181123114350159-587163615.png

而且有可能是重要信息被隐藏了,于是就有了跑马灯效果。
实现方式很简单:
1、在xml的Text控件内添加如下代码

 android:singleLine="true"
                android:ellipsize="marquee"
                android:marqueeRepeatLimit="marquee_forever"

2、在Activity或者Fragment或者Adapter内添加如下代码:

 tvDeviceName.setSelected(true);

以上代码必须否则无法实现效果。
我引入的代码
1、xml内的代码:

<TextView
                android:id="@+id/tv_device_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignTop="@+id/tv_device"
                android:layout_toEndOf="@+id/tv_device"
                android:singleLine="true"
                android:ellipsize="marquee"
                android:marqueeRepeatLimit="marquee_forever"
                android:textColor="#666666"
                android:textSize="16sp"
                tools:text="设备名称" />

2、Activity内代码

@Override
    public void initData() {
        tvTitleName.setText("设备详情");

        if (MainApplication.getInstance().getAreaCurrentType() == 0 && MainApplication.getInstance().getCurrentUserGroupType() == 2) {
            btnPrivateDeviceDelete.setVisibility(View.GONE);
            btnPrivateDeviceMove.setVisibility(View.GONE);
            btnPrivateDeviceSet.setVisibility(View.GONE);
        }

        Intent intent = getIntent();
        deviceId = intent.getIntExtra("deviceId", 0);
        sysName = intent.getStringExtra("sysName");
        groupName = intent.getStringExtra("groupName");
        adderess = intent.getStringExtra("address");
        deviceName = intent.getStringExtra("deviceName");
        proId = intent.getIntExtra("proId", 0);
        userId = intent.getIntExtra("userId", 0);
        sysId = intent.getIntExtra("sysId", 0);
        loadData();
        //跑马灯效果必须加
        tvDeviceName.setSelected(true);
    }

实现之后的效果如图:
1218227-20181123114720865-1741725775.gif
原文地址:https://www.jianshu.com/p/71ee5c46ec8c

转载于:https://www.cnblogs.com/wzqnxd/p/10006627.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值