Android實現Banner介面迴圈輪播
阿新 • • 發佈:2019-02-16
先看看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中有,這裡再新增一個下載:下載