生活中我们不难发现一些电商类的app里面都会有一些轮播的广告条出现,我有位好朋友他正巧就是做商城这方面的app,那时候他也要做一个类似淘宝界面上的轮播的滚动条,当时他是采用listview来实现此效果,最近有空研究了一下,发现Android有些原生控件完全可以实现此功能,并且还可以实现其它更强大的效果。
如上图所示我们可以使用Android原生控件ViewAnimator
下的几个子控件去实现。通过官方文档我们可以发现ViewAnimator
有两个直接子类(ViewFlipper
、ViewSwitcher
)和两个间接子类(ImageSwitcher
、TextSwitcher
),说实话在之前的开发中,我竟然不知道这几个控件,真是汗颜。对于上图的效果我们可以通过其子类ViewFlipper
来去实现。
ViewFlipper实现上下轮播广告条
ViewFlipper
可以将动画添加到两个或多个试图之中,每次只能显示一个试图。当然我们可以控制试图之间的交换。
<ViewFlipper
android:id="@+id/viewFlipper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inAnimation="@anim/in"
android:outAnimation="@anim/out"
android:flipInterval="2000"
android:autoStart="true"/>
android:inAnimation
进入时动画android:outAnimation
退出时动画android:flipInterval
跳转的间隔时间android:autoStart
是否自动启动startFlipping()
启动一个定时器来循环子试图stopFlipping()
停止子试图的循环
JAVA代码
//这里我建了个News类 模拟从网络上获取数据 并展示
List<News> newsList = new ArrayList<>();
for (int i = 0; i < 3; i++) {
News news = new News();
news.setFirstNews("我是第一行第" + i + "条数据");
news.setTwoNews("我是第二行第" + i + "条数据");
newsList.add(news);
}
for (Ne