Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> android TextView實現跑馬燈效果

android TextView實現跑馬燈效果

編輯:關於android開發

android TextView實現跑馬燈效果


最近忙著項目,很久沒有總結提交博客和提交github了。接下來我打算整理下項目中用到的比較有用的發表到博客上。也打算總結一些關於設計模式和源碼分析的博客。今天的話就先來講下一個非常簡單但又很常用的控件,跑馬燈狀態的TextView。當我的要顯示的文本長度太長,又不想換行時用它來顯示文本一來可以完全的顯示出文本,二來效果也挺酷,實現起來超級簡單,所以,何樂不為。先看下效果圖:
這裡寫圖片描述
這裡寫圖片描述

代碼實現

TextView自帶了跑馬燈功能,只要把它的ellipsize屬性設置為marquee就可以了。但有個前提,就是TextView要處於被選中狀態才能有效果,看到這,我們就很自然的自定義一個控件,寫出以下代碼:

public class MarqueeTextView extends TextView {

    public MarqueeTextView(Context con) {
        super(con);
    }

    public MarqueeTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MarqueeTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    public boolean isFocused() {
        // TODO Auto-generated method stub
        if(getEditableText().equals(TruncateAt.MARQUEE)){
            return true;
        }
        return super.isFocused();
    }
}

重寫了isFocused方法,並進行判斷,只有設置了marqueen屬性的才保持選中狀態,否則它就跟普通TextView一樣。接下來就可以直接使用了,看下布局:


    <framelayout android:background="#39ac69" android:id="@+id/titlebar_layout" android:layout_height="wrap_content" android:layout_width="match_parent">
      

            

            

            
        
</framelayout>

要注意兩點ellipsize屬性要設置為”marquee”,行數屬性即singleLine要設置為true。到此TextView的跑馬燈效果就實現了。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved