條件:
1、android:ellipsize=”marquee”
2、TextView必須單行顯示,即內容必須超出TextView大小
3、TextView要獲得焦點才能滾動
mTVText.setText(“超過文本長度的數據");
mTVText.setSingleLine(true);設置單行顯示
mTVText.setEllipsize(TruncateAt.MARQUEE);設置跑馬燈顯示效果
TextView.setHorizontallyScrolling(true); //讓文字可以水平滑動
TextView還可以設置跑馬燈效果的滾動次數
android:marqueerepeatlimit="1"。1代表1次,-1代表無限循環。
Java代碼設置:
mTVText.setMarqueeRepeatLimit(-1);
.xml文件:
<TextView android:id="@+id/tv_marquee" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/tv_marquee_text" android:textSize="25sp" android:focusable="true" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" android:focusableInTouchMode="true" android:textColor="@color/colorPrimary" />
.Java文件
public class LampRunActivity extends AppCompatActivity { private TextView tv_marguee; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_lamp_run); intiTextView(); } public void intiTextView(){ tv_marguee= (TextView) findViewById(R.id.tv_marquee); tv_marguee.setSingleLine(true);//設置單行顯示 tv_marguee.setHorizontallyScrolling(true);//設置水平滾動效果// tv_marguee.setMarqueeRepeatLimit(-1);//設置滾動次數,-1為無限滾動,1為滾動1次新聞熱點
疑難解答