android marquee textview 走馬燈效果

網上查的全都不能用。仍是本身試驗出來的。。。android

 

測試機版本:4.0.3ide

 

網上有文章說要加 addStatesFromChildren測試

實測:加不加都能正常滾動spa

 

android:focusable="true"code

實測:必須在xml裏添加。在程序中使用tv.setFocusable(true);不能滾動xml

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:addStatesFromChildren="true"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:marqueeRepeatLimit="marquee_forever"
        android:scrollHorizontally="true"
        android:singleLine="true"
        android:text="11adshfkalhafklajfhkadjfhakjfhdjkfhadfjkhasdfhasdfjkhashkadjfhakjfhdjkfhadfjkhasdfhasdfjkhashkadjfhakjfhdjkfhadfjkhasdfhasdfjkhashkadjfhakjfhdjkfhadfjkhasdfhasdfjkhashkadjfhakjfhdjkfhadfjkhasdfhasdfjkhasdjkfhsdakfhasdjkfhasdkfhsajkdfhsdfhsadfkjhsaf" />

    <Button
        android:id="@+id/xinle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="sad" />

</LinearLayout>

 

 點擊button能夠切換模式blog

findViewById(R.id.xinle).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                flag = !flag;
                if (flag) {
                    textView.setEllipsize(TextUtils.TruncateAt.valueOf("END"));
                    return;
                }
                textView.setEllipsize(TextUtils.TruncateAt.valueOf("MARQUEE"));
            }
        });

 

關於ellipsize這個參數的用法ip

在xml中hash

android:ellipsize = "end"    省略號在結尾it

android:ellipsize = "start"   省略號在開頭

android:ellipsize = "middle"     省略號在中間

android:ellipsize = "marquee"  跑馬燈

最好加一個約束android:singleline = "true"

 

固然也能夠用代碼語句

tv.setEllipsize(TextUtils.TruncateAt.valueOf("END"));

tv.setEllipsize(TextUtils.TruncateAt.valueOf("START"));

tv.setEllipsize(TextUtils.TruncateAt.valueOf("MIDDLE"));

tv.setEllipsize(TextUtils.TruncateAt.valueOf("MARQUEE"));

最好再加一個約束tv.setSingleLine(true);

相關文章
相關標籤/搜索