跑马灯广告语的实现过程,并且自定义marquee,解决焦点抢占问题.
生活随笔
收集整理的這篇文章主要介紹了
跑马灯广告语的实现过程,并且自定义marquee,解决焦点抢占问题.
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.默認布局如下,為了只顯示一行加上singleLine屬性,加上后又顯示不全
2 ?為了解決上述文字顯示不全的問題,我們加上ellipsize這個屬性,這個屬性包含以下幾個參數.
? ? ??
3 上面幾個參數對應的表現形式如下:
4 為了實現跑馬燈的效果,我們需要添加以下幾個屬性
5 .上面的文字雖然動起來,但還是會停下來的,所以要添加下面這個屬性讓它永遠別聽,一直輪播下去
6. 最終效果展示
? ? ? ?
7.如果我們在TextView控件下加一個EditText控件會出現什么情況呢? ?那就是EditText搶占了焦點,跑馬燈不再動起來 ? ? ?了,那么怎么解決這個問題呢? ? ?為了解決這個問題,我們自定義marqueeTextView ? ? ?首先自定義一個MarqueeTextView類繼承TextView,重寫里面的兩個方法,并且把原先XML文件里TextView控件里的屬 ? ?性,用java代碼表示出來,如下:
?通過看源碼知道setMarqueeRepeatLimit(-1);里的參數-1表示永遠輪播下去
8 copy全類名替換原來XML里的TextView
9.雖然上面的操作可以實現跑馬燈效果,但焦點沖突問題依然沒有解決. ? 原因分析: 它之所以轉不起來的原因是什么? 對,是因為它失去焦點了. ? 解決問題: 其實失去焦點的時候java代碼里面都有對應的回調方法,所以我們就要去復寫這些回調方法?
10.經過以上處理后,EditText搶占焦點的問題得到了解決,效果如下:
11 . ?關于彈出dialog的焦點處理問題,也就是一下的問題. 如果我們把上面的EditText換成Button.點擊Buton彈出一個Dialog,跑馬燈會停止,如果有這樣的需求不讓它停止該 ? ? ? ? 怎么做? ?
12 滿足上訴需求分析: ? ? ?其實Dialog和Activity是很類似的.界面上的東西能夠展現出來是跟一個類有關,就是跟WindowManage這個類有關,. ? ? ? 重寫下列方法即可.
github源碼
總結
以上是生活随笔為你收集整理的跑马灯广告语的实现过程,并且自定义marquee,解决焦点抢占问题.的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zookeeper的羊群效应
- 下一篇: 移动MM要走进大学!