TextView实现跑马灯效果

作者: 吾乃韩小呆 | 来源:发表于2018-06-13 15:56 被阅读2次

    经常使用TextView会出现这样的情况,有限的空间内只能写一行,然后导致好多文字被“...”表示了,如图:


    重要文字被隐藏

    而且有可能是重要信息被隐藏了,于是就有了跑马灯效果。
    实现方式很简单:

    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);
        }
    
    

    实现之后的效果如图:


    跑马灯效果TextView

    相关文章

      网友评论

        本文标题:TextView实现跑马灯效果

        本文链接:https://www.haomeiwen.com/subject/akijeftx.html