一個Android文字輪播控制元件,實現了可垂直跑、可水平跑的跑馬燈
阿新 • • 發佈:2018-12-21
Android文字輪播控制元件
現在的絕大數APP特別是類似淘寶京東等這些大型APP都有文字輪播介面,實現迴圈輪播多個廣告詞等功能;這種控制元件俗稱“跑馬燈”,而TextBannerView已經實現了可垂直跑、可水平跑的跑馬燈了。
效果圖
Attributes屬性(TextBannerView佈局檔案中呼叫)
Attributes | format | describe |
---|---|---|
setInterval | integer | 文字切換時間間隔,預設3000 |
setAnimDuration | integer | 動畫持續時間,預設1500 |
setTextSize | dimension | 設定文字尺寸 |
setTextColor | color | 設定文字顏色,預設黑色 |
setSingleLine | boolean | 是否為顯示單行 |
setGravity | 文字顯示位置,預設左邊居中;可設定left、center、right | |
setDirection | 文字輪播方向,預設水平從右到左輪播:right_to_left;還可以設定left_to_right(從左到右輪播)、bottom_to_top(從底部到頂部輪播)、top_to_bottom(從頂部到底部輪播) | |
setFlags | 新增文字下劃線、中劃線。預設沒有劃線;可設定underline(下劃線)、strike(中劃線)。 支援版本:v1.0.4開始 | |
setTypeface | 設定字型樣式型別,如加粗、斜體、斜體加粗。預設為普通型別;可設定bold(加粗)、italic(斜體)、italic_bold(斜體加粗)。 支援版本:v1.0.4開始 |
方法
方法名 | 描述 | 版本限制 |
---|---|---|
setDatas(List datas) | 設定資料,型別:List | 無 |
startViewAnimator() | 設定開始文字切換(預設自動) | 無 |
stopViewAnimator() | 設定暫停文字切換 | 無 |
setItemOnClickListener(listener) | 設定點選監聽事件回撥 | 無 |
setDatasWithDrawableIcon() | 設定帶圖示的資料;第一個引數:資料 。第二引數:drawable. 第三引數drawable尺寸。第四引數圖示位置(僅支援Gravity.LEFT、Gravity.TOP、Gravity.RIGHT、Gravity.BOTTOM) | 1.0.2開始 |
使用步驟
Step 1.依賴TextBannerView
Gradle
dependencies{ compile 'com.superluo:textbannerview:1.0.5' //最新版本 }
或者引用本地lib
compile project(':textbannerlibrary')
Maven
<dependency> <groupId>com.superluo</groupId> <artifactId>textbannerview</artifactId> <version>1.0.5</version> <type>pom</type> </dependency>
Step 2.在佈局檔案中新增TextBannerView,可以設定自定義屬性
<com.superluo.textbannerlibrary.TextBannerView android:id="@+id/tv_banner" android:layout_width="match_parent" android:layout_height="38dp" android:background="#cc8ac6" app:setGravity="right" app:setTextColor="#fff"/>
Step 3.在Activity或者Fragment中配置TextBannerView
//初始化TextBannerView TextBannerView tvBanner = (TextBannerView) findViewById(R.id.tv_banner); //設定資料 List<String> list = new ArrayList<>(); list.add("學好Java、Android、C#、C、ios、html+css+js"); list.add("走遍天下都不怕!!!!!"); list.add("不是我吹,就怕你做不到,哈哈"); list.add("superluo"); list.add("你是最棒的,奔跑吧孩子!"); //呼叫setDatas(List<String>)方法後,TextBannerView自動開始輪播 //注意:此方法目前只接受List<String>型別 tvBanner.setDatas(mList); Drawable drawable = getResources().getDrawable(R.mipmap.ic_launcher); /**這裡可以設定帶圖示的資料(1.0.2新方法),比setDatas方法多了帶圖示引數; 第一個引數:資料 。 第二引數:drawable. 第三引數:drawable尺寸。 第四引數:圖示位置僅支援Gravity.LEFT、Gravity.TOP、Gravity.RIGHT、Gravity.BOTTOM */ mTvBanner.setDatasWithDrawableIcon(mList,drawable,18, Gravity.LEFT); //設定TextBannerView點選監聽事件,返回點選的data資料, 和position位置 tvBanner.setItemOnClickListener(new ITextBannerItemClickListener() { @Override public void onItemClick(String data, int position) { Log.i("點選了:",String.valueOf(position)+">>"+data); } });
Step 4.在Activity或者Fragment中的onResume()和onStop()方法分別呼叫startViewAnimator()和stopViewAnimator(),防止返回頁面出現文字重影問題!
@override protected void onResume() { super.onResume(); tvBanner.startViewAnimator(); } 、、、、、、 @override protected void onStop() { super.onStop(); tvBanner.stopViewAnimator(); }