TextView不用獲取焦點也能實現跑馬燈

2021-09-06 09:03:01 字數 915 閱讀 5865

之前在網上找了很多關於textview的跑馬燈效果實現的例子,實現起來都存在一些問題,例如一種是完全重畫乙個跑馬燈,還有就是只設定textview的相關屬性使其具有跑馬燈的效果,總的來說這兩種方法都是可行的,但是都有其不足之處,第一種太複雜,實現起來比較麻煩,第二種呢,它只能在textview獲得焦點的時候才有跑馬燈的效果,這樣有時候並不能達到我們所要求的效果。我通過網上的一些例子自己在做了一些改動,就實現了現在不用獲取焦點也能「跑」起來的效果。具體**如下

首先,寫乙個類,讓其繼承自textview:

public class marqueetext extends textview

public marqueetext(context context, attributeset attrs)

public marqueetext(context context, attributeset attrs, int defstyle)

@override

public boolean isfocused()

@override

protected void onfocuschanged(boolean focused, int direction,

rect previouslyfocusedrect)

}然後再將我們已經寫好的這個控制項(marqueetext)放到布局檔案中,例如main.xml:

前乙個textview是用android自帶的跑馬燈效果,後乙個就是咱自己的。至於activity中怎麼寫這裡就不多說了,沒有什麼特殊的設定。

關於marqueetext類中為什麼要複寫onfocuschanged()方法,那是因為如果不寫,在textview 獲得焦點後,再失去焦點時 字就會停止「跑」了,所以如果想讓它一直跑下去就複寫onfocuschanged(),並且裡面什麼也不做(主要是不能呼叫父類的方法)。

mfc CEdit焦點獲取

做簡單的文字檢視器,主要是將txt的內容根據一定規則轉換為對應行的另乙個txt,用同乙個滾動條控制兩個edit顯示框顯示txt內容 兩個edit顯示框的內容同時上下滾動 可以進行簡單搜尋查詢功能 idc edit是控制項的id1 搜尋查詢,主要是要獲取游標位置m edit.setsel pos,po...

activeElement 獲取焦點

當前獲得焦點的元素 var x document.activeelement.tagname 獲取當前焦點id varx document.activeelement.id document.activeelement屬性始終會引用dom中當前獲得了焦點的元素。元素獲得焦點的方式有使用者輸入 通常是...

EditText獲取焦點和失去焦點

在android開發中,關於edittext自動獲取焦點彈出鍵盤,我們可能又是會有讓鍵盤自動彈出的需求,有時可能又會有不想讓鍵盤自動彈出的需求 需求 edittext自動獲取焦點並彈出鍵盤,edittext.setfocusable true edittext.setfocusableintouch...