TextView實現跑馬燈效果

經常使用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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章