首页 > 系统 > Android > 正文

Android自定义View实现广告信息上下滚动效果

2019-12-12 06:18:57
字体:
来源:转载
供稿:网友

先看看效果:

实现代码:

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="热烈欢迎领导光临" />  <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();

以上就是本文的全部内容,希望对大家学习Android软件编程有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表