1. 程式人生 > >Android實現TextView走馬燈效果同時自動更新顯示當前時間

Android實現TextView走馬燈效果同時自動更新顯示當前時間

在專案開發中,有時候我們需要顯示一個走馬燈效果,簡單的走馬燈效果當然容易實現;

在xml檔案中給TextView設定以下屬性即可;

android:focusable=true;

android:focuseableInTouchMode=true

android:singleLine=true;

android:ellipsize=marquee;

marqueeRepeatLimit=marquee_forever;//後面屬性是實現無線自動滾動,根本停不下來

同時需要注意;textview的寬度以及顯示內容的長度;如果控制元件寬度足夠寬,是不會出現滾動效果的,只有當需要顯示內容在一行顯示不下的情況下,才會滾動;

若想只是單純的實現走馬燈顯示一般文字,這樣就可以了,可是問題來了!

若想顯示2016年7月14日11:20:56星期四這種格式的時間實現自動滾動+自動更新時間,單純的那個就不能實現了!

本人思路:

1;開始使用handler每隔一秒獲取當前時間更新;

runnable=new Runnable() {
public void run() {
currentTime=DateUtil.getSysDate();
tvTextView.setText("更新今天的日期"+currentTime);
mHandler.postDelayed(this, 1000);
}
};
mHandler.postDelayed(runnable, 1000);
}

然而這會出現一個問題,每一秒獲取一次時間,重新整理Ui;這樣就會導致textview的文字一直顯示前面的內容,並且不能滾動效果;因為你每隔一秒設定一次texiview,就會導致介面有種抖動效果;

2;後來博主想到先獲取當前時間,不進行設定texiview,只是記錄下來,然後判斷當前時間和上次的時間是否相同,如果不相同就設定,相同的話就不更新介面;顯示之前的內容;(ps;僅方法不能讓顯示時間精確到秒)

runnable=new Runnable() {

public void run() {
currentTime=DateUtil.getSysDate();
if(!lastTime.equals(currentTime)){
tvTextView.setText("更新今天的日期"+currentTime);
Log.d("TAG", "lastTime"+lastTime);
}
lastTime=currentTime;
mHandler.postDelayed(this, 1000);
}
};
mHandler.postDelayed(runnable, 1000);

這樣就可以實現同時兼顧走馬燈效果和自動更新時間效果


存在的BUG:時間顯示到年月日時分還可以,如果顯示秒的話,還是會出現那個抖動效果,目前還想不出解決辦法;

相關推薦

Android實現TextView走馬燈效果同時自動更新顯示當前時間

在專案開發中,有時候我們需要顯示一個走馬燈效果,簡單的走馬燈效果當然容易實現; 在xml檔案中給TextView設定以下屬性即可; android:focusable=true; android:focuseableInTouchMode=true android:sin

欄位是timestamp型別隨著更新該列的其他欄位也會自動更新當前時間

有一個欄位是timestamp型別~~~是記錄該列的建立時間的~~~~但現在發現一更新該列的其他欄位~~~這個timestamp就自動更新為當前時間~~~~應該怎麼做才能使他不變呢??解決方法:只需在建立表的時候 timestamp型別 後面加上DEFAULT  CURREN

android:TextView實現文字走馬燈效果(欺騙系統獲取持久的焦點)

通常情況下我們想實現文字的走馬燈效果需要在xml檔案中這樣設定 <TextView android:layout_width="wrap_content"

Android實現textview文字滾動顯示(跑馬燈效果

自定義Textview並對其進行改造,主要目的是讓textview獲取焦點,這樣文字才能滾動起來 public class MyTextView extends android.support.v7

關於Android實現TextView跑馬燈效果

在xml屬性中設定 <TextView android:width="wrap_content" android:height="wrap_content" android:singleLine="true" andr

Android TextView走馬燈效果

<TextView android:id="@+id/myTextView" android:layout_width="match_parent" android:layout_height="wrap_content" andro

TEXTVIEW走馬燈效果(上)

aid textview lis ext 走馬燈 tex 效果 view .com %E7%BB%99%E5%A4%A7%E5%AE%B6%E5%88%86%E4%BA%AB%E4%B8%80%E4%B8%AA%E5%A6%84%E6%92%AE%E5%BA%94%E7%9

postgresSQL 實現資料修改後,自動更新updated_date/ts等欄位

1. 需求說明:      實現MYSQL中有on update CURRENT_TIMESTAMP 2. 需求分析   由於資料庫遷移需要將MYSQL中的資料遷移到postgresSQL中,由於MYSQL中有on update CURRENT_TIMESTAMP這種功能但

Android 實現跑馬燈效果

這裡用到了HorizontalScrollView巢狀TextView,上xml佈局: <HorizontalScrollView android:id="@+id/horiSv" android:layout_width="match_parent"

Android 實現TextView的部分文字和網路連結及電話號碼點選監聽

前言 最近在寫專案的時候遇到了一個這樣的需求,要像qq一樣,點選評論的者的名字要跳轉評論者的使用者資訊介面,並且點選評論資訊中的web連結要跳轉到WebActivity,同時如果是其他數字的話要像qq一樣點選並顯示底部Dialog提示是播打電話還是複製號碼。 效

android實現文字漸變效果和歌詞進度的效果

要用TextView使用漸變色,那我們就必須要了解LinearGradient(線性漸變)的用法。 LinearGradient的引數解釋 LinearGradient也稱作線性渲染,LinearGradient的作用是實現某一區域內顏色的線性漸變效果,

Android實現輪播效果SliderLayout

實現輪播效果有2種方法: (1)使用ViewPager+ImageView,通過Handler進行間隔傳送訊息,實現自動輪播效果 xml程式碼: <android.support.v4.view.ViewPager android:i

Android 實現水波紋效果

一、首先還是先上效果 二、實現原理      自定義view,使用Path和貝塞爾曲線繪製,然後不斷重新整理,並且改變X、Y的值     主要知識點rQuadTo的使用 三、實現 WaveView.java public class WaveView extends V

android實現tab切換效果

一:利用ViewPager實現Tab切換效果 1.首先新建幾個要切換的xml佈局檔案,然後在主佈局中間新增<android.support.v4.view.ViewPager>佈局,用於顯示我們寫好的xml佈局。 2.在主方法中,定新增程式碼如下:LayoutI

android 實現水波紋效果(二) 優化篇

  在我的上一篇文章中,初步介紹了一下水波紋的實現,確實也實現了,剛開始我表示很滿意啊,但是後來看了一下系統的實現效果,我開始發現有點不對勁;來對比一下: 這是優化前的效果 這是優化後的效果   區別看不出來?仔細看一下,系統的實現效果是

android 實現TextView實現跑馬燈形式的字型

         <TextView             android:id="@+id/t1"             android:layout_width="200dp"             android:layout_height="wrap_content"           

Android實現TextView中文字連結的4種方式介紹及程式碼

Android實現TextView中文字連結的方式有很多種;總結起來大概有4種:用Spannable或實現它的類,如SpannableString來格式,部分字串等等,感興趣的你可以參考下 Android 的實現TextView中文字連結的方式有很多種。 總結起來大概有4

Android實現拖動效果的兩種解法

因為最近專案的需要,需要實現一個拖動效果,看了一下網上剛好有這種拖動效果的demo,程式碼大概如下: private void initListener(){ screenWidth = getScreenWidth(this);//獲取

Android實現TextView部分文字監聽單擊事件

由於專案需要,在Android上實現TextView部分文字監聽單擊事件效果如下: 網上找了一些資料,我自己加工一下,生成了一個工具類,使用非常方便,程式碼如下: TextViewUtil.getInstance().setPartOnClickListener(mTv

Android 實現TextView垂直向上滾動(仿向上滾動文字的廣告)

配置方法:project中build.gradle檔案內:allprojects { repositories { ... maven { url "https://jitpack.io" }