成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

自定義TextView跑馬燈效果實例教程

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

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

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

效果圖:

  1. public class MarqueeText extends TextView implements Runnable { 
  2.         private int currentScrollX;// 當前滾動的位置 
  3.         private boolean isStop = false
  4.         private int textWidth; 
  5.         private boolean isMeasure = false
  6.   
  7.         public MarqueeText(Context context) { 
  8.                 super(context); 
  9.                 // TODO Auto-generated constructor stub 
  10.         } 
  11.   
  12.         public MarqueeText(Context context, AttributeSet attrs) { 
  13.                 super(context, attrs); 
  14.         } 
  15.   
  16.         public MarqueeText(Context context, AttributeSet attrs, int defStyle) { 
  17.                 super(context, attrs, defStyle); 
  18.         } 
  19.   
  20.         @Override 
  21.         protected void onDraw(Canvas canvas) { 
  22.                 // TODO Auto-generated method stub 
  23.                 super.onDraw(canvas); 
  24.                 if (!isMeasure) {// 文字寬度只需獲取一次就可以了 
  25.                         getTextWidth(); 
  26.                         isMeasure = true
  27.                 } 
  28.         } 
  29.   
  30.         /** 
  31.          * 獲取文字寬度 
  32.          */ 
  33.         private void getTextWidth() { 
  34.                 Paint paint = this.getPaint(); 
  35.                 String str = this.getText().toString(); 
  36.                 textWidth = (int) paint.measureText(str); 
  37.         } 
  38.   
  39.         @Override 
  40.         public void run() { 
  41.                 currentScrollX -= 2;// 滾動速度 
  42.                 scrollTo(currentScrollX, 0); 
  43.                 if (isStop) { 
  44.                         return
  45.                 } 
  46.                 if (getScrollX() <= -(this.getWidth())) { 
  47.                         scrollTo(textWidth, 0); 
  48.                         currentScrollX = textWidth; 
  49. //                        return; 
  50.                 } 
  51.                 postDelayed(this5); 
  52.         } 
  53.   
  54.         // 開始滾動 
  55.         public void startScroll() { 
  56.                 isStop = false
  57.                 this.removeCallbacks(this); 
  58.                 post(this); 
  59.         } 
  60.   
  61.         // 停止滾動 
  62.         public void stopScroll() { 
  63.                 isStop = true
  64.         } 
  65.   
  66.         // 從頭開始滾動 
  67.         public void startFor0() { 
  68.             currentScrollX = 0
  69.             startScroll(); 
  70.         } 

布局文件:

  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  2.     xmlns:tools="http://schemas.android.com/tools" 
  3.     android:layout_width="fill_parent" 
  4.     android:layout_height="fill_parent" 
  5.     android:orientation="vertical" > 
  6.   
  7.     <Button 
  8.         android:id="@+id/start" 
  9.         android:layout_width="wrap_content" 
  10.         android:layout_height="wrap_content" 
  11.         android:onClick="start" 
  12.         android:text="走起" /> 
  13.   
  14.     <Button 
  15.         android:id="@+id/stop" 
  16.         android:layout_width="wrap_content" 
  17.         android:layout_height="wrap_content" 
  18.         android:onClick="stop" 
  19.         android:text="停止" /> 
  20.   
  21.     <Button 
  22.         android:id="@+id/startfor0" 
  23.         android:layout_width="wrap_content" 
  24.         android:layout_height="wrap_content" 
  25.         android:onClick="startFor0" 
  26.         android:text="從頭開始" /> 
  27.   
  28.     <simtice.demo.marqueetext.MarqueeText 
  29.         android:id="@+id/test" 
  30.         android:layout_width="fill_parent" 
  31.         android:layout_height="wrap_content" 
  32.         android:background="#339320" 
  33.         android:ellipsize="marquee" 
  34.         android:singleLine="true" 
  35.         android:text="這才是真正的文字跑馬燈效果這才是真正的字跑馬燈效果這才是真正的" 
  36.         android:textColor="#000000" 
  37.         android:textSize="20dp" > 
  38.     </simtice.demo.marqueetext.MarqueeText> 
  39.   
  40. </LinearLayout> 
MainActivity:
  1. public class MainActivity extends Activity { 
  2.         private MarqueeText test; 
  3.   
  4.         @Override 
  5.         public void onCreate(Bundle savedInstanceState) { 
  6.                 super.onCreate(savedInstanceState); 
  7.                 setContentView(R.layout.activity_main); 
  8.                 test = (MarqueeText) this.findViewById(R.id.test); 
  9.         } 
  10.   
  11.         public void start(View v) { 
  12.                 test.startScroll(); 
  13.         } 
  14.   
  15.         public void stop(View v) { 
  16.                 test.stopScroll(); 
  17.         } 
  18.         public void startFor0(View v){ 
  19.                 test.startFor0(); 
  20.         } 

 

責任編輯:徐川 來源: cnblogs
相關推薦

2015-08-07 15:45:02

swift跑馬燈源碼

2011-07-29 10:01:21

IOS 跑馬燈

2022-07-12 08:32:17

transition跑馬燈

2023-11-01 08:33:45

CSS動畫效果

2009-09-18 11:44:05

Scala實例教程Kestrel

2010-09-14 16:47:23

SQL自定義函數

2014-08-26 11:46:46

QtAndroid實例教程

2010-09-10 14:33:32

SQL循環語句

2010-09-14 16:59:39

SQL自定義函數

2010-08-17 11:02:45

DIV CSS實例教程

2019-06-17 15:25:17

expandunexpandLinux

2011-07-25 16:03:47

XCode 編譯

2025-04-14 09:35:00

2013-01-04 16:17:33

Android開發圖像特效圖像處理

2009-09-08 14:18:35

NFS服務器

2011-06-20 16:03:03

Qt 控件 鼠標

2021-01-28 14:34:35

鴻蒙HarmonyOS應用開發

2013-03-28 10:58:30

自定義Android界android

2021-09-14 15:13:18

鴻蒙HarmonyOS應用

2013-01-06 10:43:54

Android開發View特效
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色综合色综合网色综合 | 国产精品伦一区二区三级视频 | 在线中文一区 | 狠狠av| 久久久久久久久久久久一区二区 | 久久久久久99 | 三级高清| 国产亚洲一区二区三区 | 每日在线更新av | 欧美日韩在线观看一区二区三区 | 99热激情| 全免费a级毛片免费看视频免费下 | 亚洲国产精品一区二区三区 | 免费午夜电影 | 日韩欧美在线观看视频网站 | 精品一区国产 | 欧美天天视频 | 日韩成人免费视频 | 一区二区三区国产 | 日本在线播放一区二区 | 欧美1区| 中文字幕观看 | 国产福利91精品 | 在线观看av不卡 | 成人午夜免费在线视频 | 成人午夜电影在线观看 | 电影91久久久 | 欧美精品一二区 | 欧美一区二不卡视频 | 日韩欧美三区 | 国产亚洲欧美另类一区二区三区 | 国产成人a亚洲精品 | 成人精品一区二区三区中文字幕 | 中文字幕 在线观看 | 中文日本在线 | 在线婷婷 | 大学生a级毛片免费视频 | 日韩毛片在线视频 | 日韩第一夜| 亚洲成人一区 | 国产精品久久福利 |