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


這篇博客會(huì)講得比較雜:

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

  2. 如何計(jì)算每行文字的長(zhǎng)度?

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

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

TextView里各部分的大小該怎么測(cè)量?

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

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

先看一下布局代碼: