Android自定義控件----電商項目常用的跑馬燈YluoMarqueeView

先看效果圖
效果圖

最近有人問我要一個電商項目的跑馬燈的控件.看了一下感覺實現起來不是很難,現在跟大家分享一下.不知道之前有沒有人分享過.

其實實現原理就是:先定好行高,然後計算出三行的位置.
分別是前一行,當前行和下一行的位置.然後在滾動的時候,就把當前行的位置往前一行的位置移動,下一行的位置就往當前行的位置移動.移動結束之後,就把當前行的位置換位下一行的位置即可.以後重複同樣的同樣的工作.

至於滾動的效果我是用Scroller來實現的,大家可以換ValueAnimator來實現,看個人習慣吧.

最後測量繪製的字出現省略號的效果是用TextUtils類的ellipsize方法來實現的.

循環滾動的效果實現是實現一個Runable然後通過postDelayed來調用直接實現的,其停止效果是通過mIsPlay來標記的.代碼如下:

class PlayRunnable implements Runnable {

        @Override
        public void run() {

            if(mIsPlay) {
                nextLine();
                postDelayed(this, 1000);
            }
        }
    }

項目下載地址:https://github.com/yingtianxun/YluoMarqueeView

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章