老規(guī)矩,先上張圖
o,這篇好像是分析篇,沒有效果圖。不管了,位置占著,老規(guī)矩不能壞,下面開始正文。


這篇博客會講得比較雜:

  1. TextView里各部分的大小該怎么測量?

  2. 如何計算每行文字的長度?

  3. 設置android:maxLines="1"和android:singleLine="true"有什么區(qū)別?

  4. 為什么設置android:maxLines="1"時TextView的跑馬燈效果就不能正常工作?

TextView里各部分的大小該怎么測量?

雖然我們平時只用TextView顯示純文本數(shù)據(jù),但其實TextView支持設置Background,四周的drawable小圖標,以及Span數(shù)據(jù)比如文本或圖片。在Android里不管是什么控件都是占據(jù)一個矩形的空間,那么在一個TextView里該如何計算各個矩形的大小呢?下面是TextView提供的各個獲取長度寬度的接口:

getWidth(), getHeight()
getPaddingLeft/Right/Top/Bottom()
getCompoundPaddingLeft/Right/Top/Bottom()
getExtendedPaddingBottom/Top()
getTotalPaddingLeft/Right/Top/Bottom()

先看一下布局代碼: