国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android中使用TextView實現文字跑馬燈效果

2019-10-23 18:32:22
字體:
來源:轉載
供稿:網友

通常情況下我們想實現文字的走馬燈效果需要在xml文件中這樣設置

<TextView   android:layout_width="wrap_content"   android:layout_height="wrap_content"   android:singleLine="true"   android:ellipsize="marquee"   android:focusable="true"   android:focusableInTouchMode="true"   android:text="@string/lyric" /> 

大家都懂的就不解釋了。

singleLine :boolean型的是否讓文字只顯示在一行而不是多行顯示

ellipsize:滾動效果,里面有(none,start,middle,end,marquee),其中none表示正常顯示文字,即使一行顯示不完全,也無任何效果。star,就是假如文字在一行顯示不完全,在開頭顯示...,同理,end一行的最后一個文字后面加...,middle就是所有文字顯示在一行,如果文字太多,在中間加入...。可能我解釋的不清楚,大概就是這樣 讀者可以自己測試一下。至于marquee就是文字走馬燈效果啦。

當然,如果你只設置了這些文字還是不會滾動的。還要使TextView獲取焦點。

focusable:是否能夠焦點,boolean型的

focusableInTouchMode:boolean型的。

在觸摸模式下是否獲取焦點。

當你設置了這些部署在手機上,很明顯會實現走馬燈效果。效果如下:

textview,走馬燈效果,textview跑馬燈,android,跑馬燈效果

可是如果你在這個Activity實例中再添加一個編輯框控件,點擊編輯框后就會發現走馬燈效果消失了.

就像這樣

textview,走馬燈效果,textview跑馬燈,android,跑馬燈效果

這是為什么呢?

因為點擊編輯框,編輯框會獲取屏幕焦點,由于通常情況下屏幕的焦點只能有一個,TextView失去了焦點,也就不會滾動了。這時候我們要怎么辦呢?

那就欺騙系統唄。告訴它我們的TextView也是有焦點的。沒錯 兩個焦點。

如何做?我們就新建一個我們自己的TextView唄。

首先我們新建一個名為MyTextView繼承TextView的類,重寫里面的方法,其中有三個方法是必須的,就像我們總在MainActivity里面重寫OnCreate方法一樣,作用是什么 我也不清楚。好奇的同學請百度。哈哈~

我們要知道系統是如何判斷一個控件是否獲取焦點了呢?

public boolean isFocused() {   // TODO Auto-generated method stub   return super.isFocused(); } 

就是這個方法。前面說了 我們要欺騙系統 我們的TextViwe是有焦點的。所以我們在這個方法里面一直return true就好了 哈哈  是不是特流氓。。。

做完了這些別忘記把我們的TextView部署到布局文件中哦

布局代碼:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   android:layout_width="fill_parent"   android:layout_height="fill_parent"   android:orientation="vertical" >   <com.example.textview.MyTextView     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:ellipsize="marquee"     android:singleLine="true"     android:text="@string/lyric" />   <EditText     android:layout_width="fill_parent"     android:layout_height="wrap_content" /> </LinearLayout> 

MainActivity.class

package com.example.textview; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class MainActivity extends Activity {   @Override   protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_main);   } } 

MyTextView.class

package com.example.textview; import android.content.Context; import android.util.AttributeSet; import android.view.WindowId.FocusObserver; import android.widget.TextView; public class MyTextView extends TextView{   public MyTextView(Context context, AttributeSet attrs, int defStyle) {     super(context, attrs, defStyle);     // TODO Auto-generated constructor stub   }   public MyTextView(Context context, AttributeSet attrs) {     super(context, attrs);     // TODO Auto-generated constructor stub   }   public MyTextView(Context context) {     super(context);     // TODO Auto-generated constructor stub   }   @Override   public boolean isFocused() {     // TODO Auto-generated method stub     return true;   } } 

對了 附上效果圖。都看到光標在編輯框了~

textview,走馬燈效果,textview跑馬燈,android,跑馬燈效果

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持VEVB武林網!


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 盐池县| 元氏县| 年辖:市辖区| 阳东县| 南阳市| 沾化县| 田阳县| 嘉义市| 余庆县| 锡林郭勒盟| 宕昌县| 南通市| 陕西省| 黑水县| 吴川市| 开江县| 贵州省| 濮阳县| 安龙县| 株洲市| 新郑市| 霸州市| 松潘县| 凌海市| 临桂县| 喀什市| 建瓯市| 威宁| 磐安县| 会东县| 虹口区| 桃江县| 华阴市| 枝江市| 巫溪县| 射洪县| 荆门市| 黔南| 东平县| 天峻县| 东莞市|