1. 程式人生 > >Android上下滾動的textview(可作為網站公告)

Android上下滾動的textview(可作為網站公告)

public class VerticalTextview extends TextSwitcher implements ViewSwitcher.ViewFactory { private static final int FLAG_START_AUTO_SCROLL = 0; private static final int FLAG_STOP_AUTO_SCROLL = 1; private float mTextSize = 16 ; private int mPadding = 5; private int textColor = Color.BLACK
; /** * @param textSize 字號 * @param padding 內邊距 * @param textColor 字型顏色 */ public void setText(float textSize,int padding,int textColor) { mTextSize = textSize; mPadding = padding; this.textColor = textColor; } private OnItemClickListener itemClickListener; private Context mContext
; private int currentId = -1; private ArrayList<String> textList; private Handler handler; public VerticalTextview(Context context) { this(context, null); mContext = context; } public VerticalTextview(Context context, AttributeSet attrs) { super(context, attrs);
mContext = context; textList = new ArrayList<String>(); } public void setAnimTime(long animDuration) { setFactory(this); Animation in = new TranslateAnimation(0, 0, animDuration, 0); in.setDuration(animDuration); in.setInterpolator(new AccelerateInterpolator()); Animation out = new TranslateAnimation(0, 0, 0, -animDuration); out.setDuration(animDuration); out.setInterpolator(new AccelerateInterpolator()); setInAnimation(in); setOutAnimation(out); } /** * 間隔時間 * @param time */ public void setTextStillTime(final long time){ handler =new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case FLAG_START_AUTO_SCROLL: if (textList.size() > 0) { currentId++; setText(textList.get(currentId % textList.size())); } handler.sendEmptyMessageDelayed(FLAG_START_AUTO_SCROLL,time); break; case FLAG_STOP_AUTO_SCROLL: handler.removeMessages(FLAG_START_AUTO_SCROLL); break; } } }; } /** * 設定資料來源 * @param titles */ public void setTextList(ArrayList<String> titles) { textList.clear(); textList.addAll(titles); currentId = -1; } /** * 開始滾動 */ public void startAutoScroll() { handler.sendEmptyMessage(FLAG_START_AUTO_SCROLL); } /** * 停止滾動 */ public void stopAutoScroll() { handler.sendEmptyMessage(FLAG_STOP_AUTO_SCROLL); } @Override public View makeView() { TextView t = new TextView(mContext); t.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT); t.setMaxLines(1); t.setPadding(mPadding, mPadding, mPadding, mPadding); t.setTextColor(textColor); t.setTextSize(mTextSize); t.setClickable(true); t.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (itemClickListener != null && textList.size() > 0 && currentId != -1) { itemClickListener.onItemClick(currentId % textList.size()); } } }); return t; } /** * 設定點選事件監聽 * @param itemClickListener */ public void setOnItemClickListener(OnItemClickListener itemClickListener) { this.itemClickListener = itemClickListener; } /** * 輪播文字點選監聽器 */ public interface OnItemClickListener { /** * 點選回撥 * @param position 當前點選ID */ void onItemClick(int position); }

相關推薦

Android上下滾動textview作為網站公告

public class VerticalTextview extends TextSwitcher implements ViewSwitcher.ViewFactory { private static final int FLAG_START_AUTO_SCROLL = 0; priv

一種高效的android雙擊退出擴充套件多擊

參考Google,安卓手機中在檢視安卓系統版本的地方,三擊或者多擊會出現彩蛋,可以借鑑其原始碼進行實現。 //利用陣列來儲存時間     long[] mHits = new long[3];     @Override     pub

Android 上下滾動跑馬燈效果實現

產品的有個需求是 文字上下滾動,第一想到的是用屬性動畫實現,2個TextView 切換滾動,網上看了一堆資料大部分都是 TextSwitch,寫部落格不貼效果圖真的是很惆悵,不知道具體效果如何,第一次進入切換是否有問題,還有就是最後一個切換到第二個是否有問題,動畫是否流暢等,

Android跑馬燈verticaltextview上下滾動textview實現

最近專案加入春節主題切換,然後還加入了一個公告(豎直方向滾動),找到了下面幾個方案: 1.https://github.com/sunfusheng/MarqueeView 2.textswitcher參考:https://blog.csdn.net/g777520/article/de

利用原生js實現自定義滾動點選到達,拖動到達

1.HTML檔案 div1是滾動條,div2是滾動小球,div3是文字區域容器,div4是文字區域。 <div id="div"> <div id="div1"> <div id="div2"> </div> </div&

android ListView 實現3級節點 拓展N級

            ListView實現二級節點想必大家都知道可以用ExpandableListView 就可以輕鬆實現,但是要實現3級甚至多級選單怎麼實現呢? 再利用ExpandableListView 就會十分繁瑣,今天我們來探究另一種實現方式來實現。       

Android RecyclerView多個Item佈局的實現實現頭部底部

廢話不多說,小猿,上程式碼 package git.dzc.library; import android.support.v7.widget.RecyclerView; import android.view.ViewGroup; /** * Cre

android 新聞欄目管理拖動排序的gridview

一用到的知識 1.GridView的一些內部方法,如:怎麼通過觸控的座標獲取對應的position等(這裡我採用的是繼承GridView控制元件) 3.位移動畫Animation,本DEMO中主要用到:TranslateAnimation  平移動畫 4.WindowMa

android 年月日選擇器選擇年,年月,年月日

首先是兩個佈局檔案  activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk

Android 上下滾動的廣告條

有些應用裡面會有一些上下滾動文字的廣告,尤其是關於商城裡面的容易出現,具體的效果相比大家也見過,先看看效果吧 這是怎麼實現的呢,有人說是用TextView實現,有的說這是跑馬燈效果。其實說TextView實現這種效果的同學只是說對了一半,這個效果的實現是離

Android開發之AudioManager音頻管理器具體解釋

應該 數量 service eth out 開發 要求 type 路由 AudioManager簡單介紹: AudioManager類提供了訪問音量和振鈴器mode控制。使用Context.getSystemService(Context.AUDIO_SERVICE)

【轉】Entity Framework6 with Oracle實現code first

ocs driver 版本 nag model oracl 新的 vid req Oracle 已在2014年底提供對EF6的支持。以前只支持到EF5。EF6有很多有用的功能 值得升級。這裏介紹下如何支持Oracle 一.Oracle 對.net支持的一些基礎知識了解

iOS UITableView ExpandableHeader形變的Header

tar gpo span top tableview target rto off 自己實現 最常見的header就是在tableView下拉時header裏的圖片會放大的那種, 最近研究了一下,自己實現了這種header。 1.設置

bzoj 2588 Spoj 10628. Count on a tree 持久化線段樹

change lca 權值線段樹 mat sin urn problem sample des Spoj 10628. Count on a tree Time Limit: 12 Sec Memory Limit: 128 MBSubmit: 7669 Solv

Android------個人項目歆語氣象通

log sdn image roi 分享圖片 nload 城市 個人 aid 歆語氣象通: 歆語氣象伴隨你的身邊,便捷生活。 包含了以下功能: 1. 天氣預報數據覆蓋中國城市和地區;2. 提供一周天氣預報及最低最高溫度,時刻關註天氣,輕松計劃出行;3. 各種指數詳細信息,如

SQLSERVER復制數據庫某一個表到另一個數據庫中跨服務器

led 數據 rom msdb pan 錯誤 ons 數據庫 ble 一、復制數據庫某一個表到另一個數據庫中(同一服務器) SELECT * INTO 表1 FROM 表2 --復制表2如果只復制結構而不復制內容或只復制某一列只要加WHERE條件就好了 例子:SELECT

Android串列埠屏電阻,電容觸控,帶AV輸入,7寸LCD1800*48...

基本引數:CPU:MT6572 雙核1GHzRAM:512MB儲存:4GB網路:GSM,WCDMA(BAND1)WIFI:2.4G 802.11bgn藍芽:2.0支援GPS定位 擴充套件引數:1.電源輸入8~28V寬電壓輸入。2.可選配電阻觸控式螢幕和電容觸控式螢幕。3.可選配AV攝像頭輸入,CVBS(

微信小程式中使用Echarts非同步請求資料

在微信小程式中使用Echarts,主要分為以下幾步: 1.首先要下載ecomfe/echarts-for-weixin專案,下載後將ec-canvas資料夾複製到小程式專案中,假設放在根目錄下utils資料夾中。 2.在要實現echarts圖的頁面引入echarts.js檔案,例如要在i

Android HTTP通訊封裝包括WebService的呼叫

第一個物件: 該物件是呼叫WebService用的一個物件基類。 package Entity; import com.google.gson.Gson; import org.json.JSONObject; import java.lang.reflect.Field; impor

Android 資料持久化技術即資料儲存方式

在討論資料持久化技術之前我們先了解幾個概念? 什麼是瞬時資料:儲存在記憶體當中,有可能會因為程式的關閉或其他原因導致記憶體被收回而丟失的資料。   為什麼採用資料持久化技術:為了保證關鍵資料在程式退出時不被丟失。   什麼是資料持久化技術:將記憶體中的瞬時資料