Android自定義View實現(xiàn)廣告信息上下滾動效果
更新時間:2016年05月27日 10:11:14 作者:pengkv
這篇文章主要為大家詳細(xì)介紹了Android自定義View實現(xiàn)廣告信息上下滾動的具體代碼,感興趣的小伙伴們可以參考一下
先看看效果:

實現(xiàn)代碼:
public class ScrollBanner extends LinearLayout {
private TextView mBannerTV1;
private TextView mBannerTV2;
private Handler handler;
private boolean isShow;
private int startY1, endY1, startY2, endY2;
private Runnable runnable;
private List<String> list;
private int position = 0;
private int offsetY = 100;
public ScrollBanner(Context context) {
this(context, null);
}
public ScrollBanner(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public ScrollBanner(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
View view = LayoutInflater.from(context).inflate(R.layout.view_scroll_banner, this);
mBannerTV1 = (TextView) view.findViewById(R.id.tv_banner1);
mBannerTV2 = (TextView) view.findViewById(R.id.tv_banner2);
handler = new Handler();
runnable = new Runnable() {
@Override
public void run() {
isShow = !isShow;
if (position == list.size())
position = 0;
if (isShow) {
mBannerTV1.setText(list.get(position++));
} else {
mBannerTV2.setText(list.get(position++));
}
startY1 = isShow ? 0 : offsetY;
endY1 = isShow ? -offsetY : 0;
ObjectAnimator.ofFloat(mBannerTV1, "translationY", startY1, endY1).setDuration(300).start();
startY2 = isShow ? offsetY : 0;
endY2 = isShow ? 0 : -offsetY;
ObjectAnimator.ofFloat(mBannerTV2, "translationY", startY2, endY2).setDuration(300).start();
handler.postDelayed(runnable, 3000);
}
};
}
public List<String> getList() {
return list;
}
public void setList(List<String> list) {
this.list = list;
}
public void startScroll() {
handler.post(runnable);
}
public void stopScroll() {
handler.removeCallbacks(runnable);
}
}
view_scroll_banner.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:padding="10dp">
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="公告"
android:textColor="#e76712"
android:textSize="16sp" />
<View
android:id="@+id/view_divider"
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_toRightOf="@id/tv_title"
android:background="#DDDDDD" />
<TextView
android:id="@+id/tv_banner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/view_divider"
android:ellipsize="end"
android:singleLine="true"
android:text="熱烈歡迎領(lǐng)導(dǎo)光臨" />
<TextView
android:id="@+id/tv_banner2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/view_divider"
android:ellipsize="end"
android:singleLine="true"
android:text="喜慶國慶歡樂大酬賓" />
</RelativeLayout>
使用方法:
scrollBanner.setList(list); scrollBanner.startScroll();
以上就是本文的全部內(nèi)容,希望對大家學(xué)習(xí)Android軟件編程有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- Android 自定義View的使用介紹
- Android自定義View實現(xiàn)搜索框(SearchView)功能
- Android開發(fā)使用自定義View將圓角矩形繪制在Canvas上的方法
- Android自定義View設(shè)定到FrameLayout布局中實現(xiàn)多組件顯示的方法 分享
- Android自定義View實現(xiàn)繪制虛線的方法詳解
- Android自定義View之自定義評價打分控件RatingBar實現(xiàn)自定義星星大小和間距
- Android自定義View實現(xiàn)loading動畫加載效果
- Android自定義View實現(xiàn)漸變色進(jìn)度條
- Android 使用Kotlin自定義View的方法教程
- Android?自定義view中根據(jù)狀態(tài)修改drawable圖片
相關(guān)文章
Android ListView的item中嵌套ScrollView的解決辦法
有時候,listview 的item要顯示的字段比較多,考慮到顯示問題,item外面不得不嵌套ScrollView來實現(xiàn),糾結(jié)怎么解決此問題呢?下面小編給大家分享下Android ListView的item中嵌套ScrollView的解決辦法,感興趣的朋友一起看看吧2016-10-10
Android SoundPool實現(xiàn)簡短小音效
這篇文章主要為大家詳細(xì)介紹了Android SoundPool實現(xiàn)簡短小音效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-11-11
Kotlin?協(xié)程的取消機(jī)制詳細(xì)解讀
這篇文章主要為大家介紹了Kotlin?協(xié)程的取消機(jī)制詳細(xì)解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
Android入門之在子線程中調(diào)用Handler詳解
這篇文章主要為大家詳細(xì)介紹了Android如何在子線程中調(diào)用Handler,文中的示例代碼講解詳細(xì),有需要的朋友可以借鑒參考下,希望能夠?qū)Υ蠹矣兴鶐椭?/div> 2022-12-12最新評論

