轮播图在项目开发中也是属于比较常见的UI实现,一般会采用ViewPager来实现,今天的博客我就不再随大流了,给大家介绍个简单的 实现方式,在此方式下你只需做简单的配置即可。下面有通过代码来带着大家一起来实现下这个简单的UI效果。
由于我介绍的这个轮播图是利用给View或者继承view的其他控件定期更换背景来实现的,所以在布局文件中,自然少不了这么一个View或者其子类(TextView,Imageview)等
布局
<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <!--***********显示轮播图的View*************--> <TextView android:id="@+id/header_layout" android:layout_width="match_parent" android:layout_height="110dp" android:background="@drawable/xycz_news_img_2" /> <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swipe_refresh" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/listView" android:dividerHeight="2dp" android:padding="5dp" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.v4.widget.SwipeRefreshLayout> </LinearLayout><include layout="@layout/load_animation"/></FrameLayout>在java代码中自定义一个Runnable类继承自Runnable,通过handler发送延时消息
PRivate int imgsRes [] = {R.drawable.xycz_news_img_1,R.drawable.xycz_news_img_2,R.drawable.xycz_news_img_3}; //轮播的图片资源 private int imgIndex; //当前imgRes的角标索引 private MyRunable myRunable = new MyRunable(); class MyRunable implements Runnable { @Override public void run() { imgIndex++; imgIndex=imgIndex%3; ((TextView) view.findViewById(R.id.header_layout)).setBackgroundResource(imgsRes[imgIndex]); mHandler.postDelayed(myRunable,3000); } }在Java类的入口方法(onCreate、onCreateView)让该Runnable对象跑起来mHandler.postDelayed(myRunable,3000); //通知线程更新轮播图当然还需要有个Handler对象。到此为止整个功能就简单实现了,个人感觉在需求不是太苛刻时,用此方法比ViewPager要简单很多,可以省去很多繁琐的代码
新闻热点
疑难解答