編輯:初級開發
TextView自帶跑馬燈的效果,需要設置一下TextVIEw的屬性,把顯示模式改為“跑馬燈”。設置滾動次數。
這些都還不夠,因為TextView的跑馬燈跑起來,需要此textVIEw得到焦點。所以要想個辦法解決一下,讓他總是滾動。
簡要步驟:
在包中新建一個類,繼承TextView。重寫isFocused方法,這個方法默認行為是,如果TextView獲得焦點,方法返回true,失去焦點則返回false。跑馬燈效果估計也是用這個方法判斷是否獲得焦點,所以把它的返回值始終設置為true。public class AlwaysMarqueeTextView extends TextVIEw {
public AlwaysMarqueeTextVIEw(Context context) {
super(context);
public AlwaysMarqueeTextVIEw(Context context, AttributeSet attrs) {
super(context, attrs);
public AlwaysMarqueeTextVIEw(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
@Override
public boolean isFocused() {
return true;
在布局XML文件中加入這麼一個AlwaysMarqueeTextVIEw,這個加入方法也是剛剛學的。
XML語言: layout.XML<com.examples.AlwaysMarqueeTextVIEw
android:id=“@+id/AMTV1″
android:layout_width=“fill_parent”
android:layout_height=“wrap_content”
android:lines=“1″
android:focusable=“true”
android:focusableInTouchMode=“true”
android:scrollHorizontally=“true”
android:marqueeRepeatLimit=“marquee_forever”
android:ellipsize=“marquee”
android:background=“@android:color/transparent”
/>
ellipsize屬性
設置當文字過長時,該控件該如何顯示。有如下值設置:”start”―C省略號顯示在開頭;”end”――省略號顯示在結尾;”middle”―-省略號顯示在中間;”marquee” ――以跑馬燈的方式顯示(動畫橫向移動)
marqueeRepeatLimit屬性
在ellipsize指定marquee的情況下,設置重復滾動的次數,當設置為marquee_forever時表示無限次。
focusable屬性
自己猜測的,應該是能否獲得焦點,同樣focusableInTouchMode應該是滑動時能否獲得焦點。
組合VIEw的問題:
XML語言: 組合VIEw< LinearLayout
XMLns:android =“http://schemas.android.com/apk/res/android”
android:orIEntation =“vertical”
android:gravity =“center_vertical”
android:background =“@drawable/f_background”
android:layout_width =“fill_parent”
android:focusable =“true”
android:layout_height =“50px” >
< TextVIEw
android:id =“@+id/info_text”
android:focusable =“true”
android:layout_width =“fill_parent”
android:layout_height =“wrap_content”
android:text =“test marquee .. “
android:textColor =“@color/black”
android:singleLine =“true”
android:ellipsize =“marquee”
android:marqueeRepeatLimit =“3″
android:textSize =“18sp”
/>
< TextVIEw
android:id =“@+id/date_text”
android:layout_width =“fill_parent”
android:layout_height =“wrap_content”
android:layout_gravity =“bottom”
android:textColor =“@color/gray”
android:text =“2010/05/28″
android:textSize =“12sp”
/>
</ LinearLayout >
上面示例中2個TextView組合為一個View,由於設置了LinearLayout為focusable而TextView就沒法取得焦點了,這樣 這個TextView的跑馬燈效果就顯示不出來,就算你也設置TextVIEw的 android:focusable="true" 也是 沒用的. 這個時候就要使用addStatesFromChildren 這個屬性了,在LinearLayout中設置這個屬性,然後設置TextVIEw的focusable= "true" 就可以了.關於 addStatesFromChildren的說明:
Sets whether this VIEwGroup's drawable states also include its children's drawable states.
public class HelloXML extends Activity {private static final int MESSAGETYPE_01 = 0x
眾所周知,在寫 android 程序的時候,很容易出現 OOM ,而出現的時機大多數是由 Bitmap decode 引發的: &
接上,其實BnMediaPlayerService->onTransact函數的結構也很簡單,就是switch...case...接收不同的請求執行不同的代碼調用
android系統中采用PULL技術解析XML文檔比用SAX技術性能要好得多。建議android的開發者采用PULL技術解析XML文檔。跟SAX類似,只不過PULL技