前言:
現在的絕大數APP特別是類似淘寶京東等這些大型APP都有文字輪播界面,實現循環輪播多個廣告詞等功能;這種空間俗稱“跑馬燈”,而TextBannerView已經實現了可垂直跑、可水平跑的跑馬燈了。
效果圖
源碼下載(歡迎star):GitHub
Attributes屬性(TextBannerView佈局文件中調用)
Attributes | forma | 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(從頂部到底部輪播) |
方法:
方法名 | 描述 | 版本限制 |
---|---|---|
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.2' //最新版本
}
或者引用本地lib
compile project(':textbannerlibrary')
Maven
<dependency>
<groupId>com.superluo</groupId>
<artifactId>textbannerview</artifactId>
<version>1.0.2</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);
}
});
源碼下載(歡迎star):GitHub
就這麼簡單!
支持我的話可以關注下我的公衆號,也歡迎大家投稿~
掃一掃關注我的微信公衆號:程序猿在廣東