TextView不用获取焦点也能实现跑马灯

1.写一个类继承TextView

 

[java] view plaincopy
 
  1. package com.example.tt;  
  2. import android.content.Context;  
  3. import android.graphics.Rect;  
  4. import android.util.AttributeSet;  
  5. import android.widget.TextView;  
  6.    
  7. public class ScrollingTextView extends TextView {  
  8.    
  9.     public ScrollingTextView(Context context, AttributeSet attrs, int defStyle) {  
  10.         super(context, attrs, defStyle);  
  11.     }  
  12.    
  13.     public ScrollingTextView(Context context, AttributeSet attrs) {  
  14.         super(context, attrs);  
  15.     }  
  16.    
  17.     public ScrollingTextView(Context context) {  
  18.         super(context);  
  19.     }  
  20.     @Override  
  21.     protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {  
  22.         if(focused)  
  23.             super.onFocusChanged(focused, direction, previouslyFocusedRect);  
  24.     }  
  25.    
  26.     @Override  
  27.     public void onWindowFocusChanged(boolean focused) {  
  28.         if(focused)  
  29.             super.onWindowFocusChanged(focused);  
  30.     }  
  31.    
  32.    
  33.     @Override  
  34.     public boolean isFocused() {  
  35.         return true;  
  36.     }  
  37.    
  38. }  


2.xml 中增加属性

 

 

[html] view plaincopy
 
  1. <?xml version="1.0" encoding="utf-8"?>    
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
  3.     android:orientation="vertical"    
  4.     android:layout_width="fill_parent"    
  5.     android:layout_height="fill_parent"    
  6.     >    
  7. <com.example.tt.ScrollingTextView  
  8.      android:layout_width="wrap_content"  
  9.         android:layout_height="wrap_content"          
  10.         android:layout_marginLeft="80dip"  
  11.         android:layout_marginBottom="25dip"  
  12.         android:textSize="25sp"          
  13.         android:singleLine="true"  
  14.         android:textColor="@android:color/black"   
  15.         android:ellipsize="marquee"   
  16.         android:focusable="true"   
  17.         android:marqueeRepeatLimit="marquee_forever"   
  18.         android:focusableInTouchMode="true"   
  19.         android:scrollHorizontally="true"  
  20.         android:text="这才是真正的文字跑马灯效果,文字移动速度,文字移动方向,文字移动的样式,动画等等……"  
  21.         android:background="#2FFFFFFF" />  
  22.   
  23. <Button  
  24.     android:id="@+id/button1"  
  25.     android:layout_width="wrap_content"  
  26.     android:layout_height="wrap_content"  
  27.     android:text="Button" />  
  28.       
  29. </LinearLayout>  


3. 在activity中声明

 

 

[java] view plaincopy
 
    1. package com.example.tt;  
    2.   
    3. import android.os.Bundle;  
    4. import android.app.Activity;  
    5. import android.view.Menu;  
    6.   
    7. public class MainActivity extends Activity {  
    8.   
    9.     @Override  
    10.     public void onCreate(Bundle savedInstanceState) {  
    11.         super.onCreate(savedInstanceState);  
    12.         setContentView(R.layout.activity_main);  
    13.     }  
    14.   
    15. }  
posted @ 2014-06-17 11:16  kobe8  Views(1099)  Comments(0Edit  收藏  举报