2013年2月20日 星期三

TextView 跑馬燈效果

自己實驗過ok:

title.setSingleLine();
title.setEllipsize(TextUtils.TruncateAt.valueOf("MARQUEE"));
title.setMarqueeRepeatLimit(100);
title.setFocusable(true);
title.setSelected(true);

網路上找到的資料:

Marquee - TextView的跑馬燈效果

在layout加入以下屬性:
↓即使字串長度超過TextView的寬,也以單行顯示(超過的就算了)
android:singleLine="true"
↓設置跑馬燈功能
android:ellipsize="marquee"
↓跑馬燈次數無限制
android:marqueeRepeatLimit="marquee_forever"

最後必須取得焦點才能看到跑馬燈動起來~有兩種方式:
一、在layout加入屬性
         android:focusableInTouchMode="true"
         android:focusable="true"

main.xml
01.< TextView
02.android:layout_width="fill_parent"
03.android:layout_height="wrap_content"
04.android:text="Marquee - TextView的跑馬燈效果"
05./>
06.< TextView
07.android:id="@+id/tv_marquee"
08.android:layout_width="fill_parent"
09.android:layout_height="wrap_content"
10.android:text="Marquee - TextView的跑馬燈效果"
11.android:textSize="30sp"
12.android:textColor="@color/deeppink"
13.android:singleLine="true"
14.android:ellipsize="marquee"
15.android:marqueeRepeatLimit="marquee_forever"
16.android:focusableInTouchMode="true"
17.android:focusable="true"
18./>

二、修改src, 加上setSelected(true)

Marquee_TextView.java
01.public class Marquee_TextView extends Activity
02.{
03.TextView tv_marquee;
04./** Called when the activity is first created. */
05.@Override
06.public void onCreate(Bundle savedInstanceState)
07.{
08.super.onCreate(savedInstanceState);
09.setContentView(R.layout.main);
10. 
11.tv_marquee = (TextView) findViewById(R.id.tv_marquee);    
12. 
13.tv_marquee.setSelected(true);
14.}
15.}

沒有留言:

張貼留言