1. 程式人生 > >Android實現Banner介面迴圈輪播

Android實現Banner介面迴圈輪播

先看看demo的效果圖這裡寫圖片描述
簡單介紹下所實現的功能:
1.可以自動迴圈輪播,輪播的時間間隔可以設定。
2.可以手動左右滑動播放
3.添加了onItemClick監聽
4.新增onPageChangeListener監聽
5.等等
該控制元件是基於ViewPager實現的,參考了http://blog.csdn.net/stevenhu_223/article/details/45577781以及其他網友的資料。經過努力改造後使用起來非常方便。具體怎麼使用如下:
activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <com.zyk.autoscrollbanner.AutoScrollBanner android:id="@+id/activity_main_autoscrollbanner" android:layout_width="match_parent" android:layout_height="200dp"
/> </RelativeLayout>

MainActivity程式碼如下

public class MainActivity extends Activity {

    private AutoScrollBanner mAutoScrollBanner;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mAutoScrollBanner = (AutoScrollBanner) findViewById(R.id.activity_main_autoscrollbanner);
        List<Object> list = new
ArrayList<Object>(); //圖片的網路地址或Bitmap型別或R.drawable.xxx list.add("http://img2.3lian.com/2014/f2/37/d/40.jpg"); list.add("http://d.3987.com/sqmy_131219/001.jpg"); list.add("http://img2.3lian.com/2014/f2/37/d/39.jpg"); list.add("http://www.8kmm.com/UploadFiles/2012/8/201208140920132659.jpg"); list.add("http://f.hiphotos.baidu.com/image/h%3D200/sign=1478eb74d5a20cf45990f9df460b4b0c/d058ccbf6c81800a5422e5fdb43533fa838b4779.jpg"); //封裝的一個Adapter AutoScrollBannerImageAdapter adapter = new AutoScrollBannerImageAdapter(MainActivity.this, list); //也可以自定義Adapter extends AutoScrollBannerAdapter mAutoScrollBanner.setAdapter(adapter); //設定動畫的時間間隔 mAutoScrollBanner.startTurning(2000); //設定翻頁指示的點 不設定將不顯示指示點 mAutoScrollBanner.setPageIndicator(new int[]{R.drawable.ic_page_indicator,R.drawable.ic_page_indicator_focused}); //設定滾動動畫 可以自定義或使用已經封裝好的 這裡使用一封裝的 mAutoScrollBanner.setPageTransformer(Transformer.CubeOutTransformer); //設定背景 mAutoScrollBanner.setBackgroundColor(Color.rgb(100,100,100)); //下面是兩個監聽器的用法 mAutoScrollBanner.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AutoScrollBannerAdapter parent, View view, int position, long id) { System.out.println("data:"+(parent.getItem(position))); System.out.println("onItemClick parent:"+parent+" view:"+view+" positeion:"+position+" id:"+id); } }); mAutoScrollBanner.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int index) { // System.out.println("onPageSelected index:"+index); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // System.out.println("onPageScrolled arg0:"+arg0+" arg1:"+arg1+" arg2:"+arg2); } @Override public void onPageScrollStateChanged(int arg0) { // System.out.println("onPageScrollStateChanged arg0:"+arg0); } }); }

怎麼樣是不是使用起來很簡單,和ListView也很像。該專案已經封裝成jar,jar和javaDoc和Demo的下載。
autoScrollBanner.jar和javaDoc的下載:
下載
Demo :下載
專案中用到了圖片非同步載入的框架,該jar Demo中有,這裡再新增一個下載:下載