<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    L遷客

    技術博客
    隨筆 - 1, 文章 - 12, 評論 - 1, 引用 - 0
    數據加載中……

    自定義TextView跑馬燈效果,可控制啟動,停止,和速度

    自定義TextView跑馬燈效果,可控制啟動,停止,和速度

    Android自帶的跑馬燈效果不太好控制,不能控制速度,不能即時停止和啟動,而且還受焦點的影響蛋疼不已。由于項目需求需要用的可控制性高的跑馬燈效果,所以自己寫了一個自定義的TextView

    ---------------------------------------------------------------------------------------------------------------------

    注意:在布局文件引用本view,paddingLeft,paddingRigh都必須為0dp,需要增加這兩個屬性的,大家可以自行修改代碼。

        android:ellipsize="marquee" android:singleLine="true" 這兩個屬性也要加上

    ---------------------------------------------------------------------------------------------------------------------

    public class MarqueeText extends  TextView  implements  Runnable {

            private int currentScrollX;// 當前滾動的位置

            private boolean isStop = false;

            private int textWidth;

            private boolean isMeasure = false;

     

            public MarqueeText(Context context) {

                    super(context);

                    // TODO Auto-generated constructor stub

            }

            public MarqueeText(Context context, AttributeSet attrs) {

                    super(context, attrs);

            }

            public MarqueeText(Context context, AttributeSet attrs, int defStyle) {

                    super(context, attrs, defStyle);

            }

            @Override

            protected void onDraw(Canvas canvas) {

                    // TODO Auto-generated method stub

                    super.onDraw(canvas);

                    if (!isMeasure) {// 文字寬度只需獲取一次就可以了

                            getTextWidth();

                            isMeasure = true;

                    }

            }

    // 獲取文字寬度

            private void getTextWidth() {

                    Paint paint = this.getPaint();

                    String str = this.getText().toString();

                    textWidth = (int) paint.measureText(str);

            }

            @Override

            public void run() {

                    currentScrollX -= 2;// 滾動速度

                    scrollTo(currentScrollX, 0);

                    if (isStop) {

                            return;

                    }

                    if (getScrollX() <= -(this.getWidth())) {

                            scrollTo(textWidth, 0);

                            currentScrollX = textWidth;

    //return;

                   }

                    postDelayed(this, 5);

            }

            // 開始滾動

            public void startScroll() {

                    isStop = false;

                    this.removeCallbacks(this);

                    post(this);

            }

            // 停止滾動

            public void stopScroll() {

                    isStop = true;

            }

            // 從頭開始滾動

            public void startFor0() {

                currentScrollX = 0;

                startScroll();

            }

    }

    ---------------------------------------------------------------------------------------------------------------------

    布局文件:

    ---------------------------------------------------------------------------------------------------------------------

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

        xmlns:tools="http://schemas.android.com/tools"

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"

        android:orientation="vertical" >

        <Button

            android:id="@+id/start"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:onClick="start"

            android:text="走起" />

        <Button

            android:id="@+id/stop"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:onClick="stop"

            android:text="停止" />

        <Button

            android:id="@+id/startfor0"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:onClick="startFor0"

            android:text="從頭開始" />

        <simtice.demo.marqueetext.MarqueeText

            android:id="@+id/test"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            android:background="#339320"

            android:ellipsize="marquee"

            android:singleLine="true"

            android:text="這才是真正的文字跑馬燈效果"

            android:textColor="#000000"

            android:textSize="20dp" >

        </simtice.demo.marqueetext.MarqueeText>

     

    </LinearLayout>

     

    ---------------------------------------------------------------------------------------------------------------------

    MainActivity

    ---------------------------------------------------------------------------------------------------------------------

    public class MainActivity extends Activity {

            private MarqueeText test;

            @Override

            public void onCreate(Bundle savedInstanceState) {

                    super.onCreate(savedInstanceState);

                    setContentView(R.layout.activity_main);

                    test = (MarqueeText) this.findViewById(R.id.test);

            }

            public void start(View v) {

                    test.startScroll();

            }

            public void stop(View v) {

                    test.stopScroll();

            }

            public void startFor0(View v){

                    test.startFor0();

            }

    }

    posted on 2013-02-24 16:44 L遷客 閱讀(83) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 日韩免费视频一区| 青青青免费国产在线视频小草| 国产AV日韩A∨亚洲AV电影| 亚洲丶国产丶欧美一区二区三区| 国产亚洲精品2021自在线| 免费少妇a级毛片人成网| 亚洲av无码潮喷在线观看| 中文字幕亚洲综合小综合在线| 污污污视频在线免费观看| 亚洲人成免费电影| 亚洲精品无码久久久久AV麻豆| 亚洲国产香蕉碰碰人人| 男男黄GAY片免费网站WWW| 免费在线视频一区| 久久一区二区三区免费| 欧美男同gv免费网站观看 | 亚洲hairy多毛pics大全| 国产午夜鲁丝片AV无码免费| 亚洲精品在线视频观看| 四虎成人精品国产永久免费无码| 亚洲精品国产V片在线观看| 精品视频在线免费观看| 四虎影视永久免费视频观看| 一级一看免费完整版毛片| 尤物永久免费AV无码网站| 美女被免费视频网站a| 午夜男人一级毛片免费| 亚洲欧洲日产v特级毛片| 你懂的免费在线观看网站| 亚洲香蕉成人AV网站在线观看| 亚洲精品无码成人| 国产又大又粗又长免费视频| 亚洲狠狠ady亚洲精品大秀| 浮力影院第一页小视频国产在线观看免费 | 一色屋成人免费精品网站| 女bbbbxxxx另类亚洲| 国产最新凸凹视频免费| 亚洲女女女同性video| 在线精品亚洲一区二区三区| 曰批全过程免费视频免费看| 全部免费毛片在线|