Android TestView跑馬燈效果的實作
跑馬燈就是一行字幕在不斷的循環顯示的效果。
本文通過TextView屬性的設定或完全代碼實作跑馬燈效果的實作。
一.第一種方法
主方法調用類的執行語句就一句話:setContentView(R.layout.activity_main);
布局檔案activity.xml代碼如下
跑馬燈效果實際就是通過後面六句屬性語句完成的。
看一下下面相關解釋:
(一)android:singleLine="true"當顯示為一行的時候,才有效果
(二)android:marqueeRepeatLimit="marquee_forever"//表示滾動回數,這裡這麼設定,表示一直滾動
(三)android:ellipsize="marquee" 跑馬燈顯示
由于輸入的内容多于一行,如果不處理就會直接不顯示後面的内容,通過處理可以在前面、中間或後面加一個省略号的效果
android:ellipsize="start" 省略号在開頭
android:ellipsize="middle" 省略号在中間
android:ellipsize="end" 省略号在結尾
(四)android:focusable="true" //要顯示該跑馬燈,view必須要獲得焦點,隻有在取得焦點的情況下跑馬燈才會顯示。
(五)android:marqueeRepeatLimit在ellipsize指定marquee的情況下,設定重複滾動的次數,當設定為 marquee_forever時表示無限次。也可以設定為1,2.。等。
(六)android:focusableInTouchMode:是否在觸摸模式下獲得焦點。
對于一個大View中有很多子View來說,同一時刻隻能有一個子View獲得focus!也就是說目前這一屏上,最多隻能有一個view能有跑馬燈效果,而不能多個View同僚都有跑馬燈效果。
二.完全用代碼顯示出來的方法(不使用布局檔案.xml)
package com.example.helloworld;
import android.R.color;
import android.app.Activity;
import android.os.Bundle;
import android.text.Layout;
import android.text.TextUtils.TruncateAt;
import android.view.Menu;
import android.view.MenuItem;
import android.view.ViewGroup.LayoutParams;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView view=new TextView(this);//建立文本
view.setText("人永遠是要學習的;死的時候,才是畢業的時候。");//設定文字
view.setWidth(50);//設定寬度
view.setBackgroundColor(color.holo_red_light);//設定字型顔色
view.setTextSize(22);//字型大小
view.setPadding(20, 20, 20, 20);
//真正起到循環作用的代碼
view.setSingleLine(true);
view.setMarqueeRepeatLimit(100);//設定循環的次數
view.setEllipsize(TruncateAt.MARQUEE);//跑馬燈的顯示(省略号的設定)
view.setScrollX(5);//往x軸滑動,參數代表速度
view.setFocusable(true);//獲得聚焦
view.setFocusableInTouchMode(true);//在點選螢幕時是否獲得聚焦
//把設定是TextView顯示出來
setContentView(view);
//setContentView(R.layout.activity2);
}
}
通過運作上面的代碼也能實作布局檔案讓文字不斷循環的跑馬燈效果。
總結:
TextView其實就是一個類,也可以調用它的方法來完成很多事情,
但是作為一個android開發者,主要還是用布局檔案來開發頁面,
效果穩定,而且代碼簡潔。