日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

跑马灯广告语的实现过程,并且自定义marquee,解决焦点抢占问题.

發(fā)布時(shí)間:2023/12/18 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 跑马灯广告语的实现过程,并且自定义marquee,解决焦点抢占问题. 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.默認(rèn)布局如下,為了只顯示一行加上singleLine屬性,加上后又顯示不全


2 ?為了解決上述文字顯示不全的問題,我們加上ellipsize這個(gè)屬性,這個(gè)屬性包含以下幾個(gè)參數(shù).
? ? ??

3 上面幾個(gè)參數(shù)對(duì)應(yīng)的表現(xiàn)形式如下:




4 為了實(shí)現(xiàn)跑馬燈的效果,我們需要添加以下幾個(gè)屬性



5 .上面的文字雖然動(dòng)起來,但還是會(huì)停下來的,所以要添加下面這個(gè)屬性讓它永遠(yuǎn)別聽,一直輪播下去

6. 最終效果展示
? ? ? ?


7.如果我們?cè)赥extView控件下加一個(gè)EditText控件會(huì)出現(xiàn)什么情況呢? ?那就是EditText搶占了焦點(diǎn),跑馬燈不再動(dòng)起來 ? ? ?了,那么怎么解決這個(gè)問題呢? ? ?為了解決這個(gè)問題,我們自定義marqueeTextView ? ? ?首先自定義一個(gè)MarqueeTextView類繼承TextView,重寫里面的兩個(gè)方法,并且把原先XML文件里TextView控件里的屬 ? ?性,用java代碼表示出來,如下:

?通過看源碼知道setMarqueeRepeatLimit(-1);里的參數(shù)-1表示永遠(yuǎn)輪播下去



8 copy全類名替換原來XML里的TextView



9.雖然上面的操作可以實(shí)現(xiàn)跑馬燈效果,但焦點(diǎn)沖突問題依然沒有解決. ? 原因分析: 它之所以轉(zhuǎn)不起來的原因是什么? 對(duì),是因?yàn)樗ソ裹c(diǎn)了. ? 解決問題: 其實(shí)失去焦點(diǎn)的時(shí)候java代碼里面都有對(duì)應(yīng)的回調(diào)方法,所以我們就要去復(fù)寫這些回調(diào)方法?


10.經(jīng)過以上處理后,EditText搶占焦點(diǎn)的問題得到了解決,效果如下:

11 . ?關(guān)于彈出dialog的焦點(diǎn)處理問題,也就是一下的問題. 如果我們把上面的EditText換成Button.點(diǎn)擊Buton彈出一個(gè)Dialog,跑馬燈會(huì)停止,如果有這樣的需求不讓它停止該 ? ? ? ? 怎么做? ?


12 滿足上訴需求分析: ? ? ?其實(shí)Dialog和Activity是很類似的.界面上的東西能夠展現(xiàn)出來是跟一個(gè)類有關(guān),就是跟WindowManage這個(gè)類有關(guān),. ? ? ? 重寫下列方法即可.


github源碼



















總結(jié)

以上是生活随笔為你收集整理的跑马灯广告语的实现过程,并且自定义marquee,解决焦点抢占问题.的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。