關於(About)
申明:
該BannerView控件是在借鑑了兩位大神的代碼加工形成的:[IT_xiao小巫]大神和stevenhu_223大神。非常感謝。
BannerView的效果圖如下:
主要暴露接口和設置:
- BannerStyle樣式類:用來設置banner的樣式,包括指示器的形式(包括點,數字,圖像(待開發)),位置(上下左右),是否顯示信息,輪播時間;
- BannerInfo實體類:用來設置banner的所有信息,包括圖片,文字信息,目標url
- 提供setBannerData(List items,OnImageClickListener listener)方法,設置banner信息及banner點擊事件
- 在持續更新。
使用
導入包:
詳見我的另外一篇博文:http://blog.csdn.net/u011072613/article/details/53889596
在佈局文件中添加
<fragment
android:id="@+id/banner_frg"
android:name="com.example.yf_library.banner.BannerView"
android:layout_width="match_parent"
android:layout_height="200dp"
/>
代碼設置:
1.設置樣式信息:
bannerStyle= mBannerView.getBannerStyle();
通過BannerView獲取BannerStyle對象,當然需要記住的是樣式設置的代碼必須在數據設置的前面,這樣才能讓設置生效,不然程序會調用默認的設置。
主要樣式如下:
//水平
public enum HorizontalAlignment {
LEFT, CENTER, RIGHT
}
//垂直
public enum VerticalAlignment {
TOP, CENTER, BOTTOM
}
//指示器的形式
public enum IndicatorStyle{
NUM, INDIC, IMG
}
private int time=2;//默認時間
private HorizontalAlignment mHorizontalAlignment = HorizontalAlignment.LEFT;//默認靠左
private VerticalAlignment mVerticalAlignment = VerticalAlignment.BOTTOM;//默認靠底部
private IndicatorStyle mIndicatorStyle = IndicatorStyle.INDIC;//默認是指示器模式
private boolean showInfo=false;//默認不顯示信息
private int textBg=R.drawable.banner_txt_rec;//默認的數字背景
private int textApperance;//數字樣式
private int dotsNormal=R.drawable.dot_normal;//常規的點
private int dotsSelected=R.drawable.dot_focused;//被選中的點
private int defImg=R.drawable.def_banner;//默認加載的圖片
每一個元素均有相應的set方法,具體可查看源碼。
2.BannerInfo信息設置
BannerInfo adDomain = new BannerInfo();
adDomain.setId("108078");
adDomain.setDate("3月4日");
adDomain.setTitle("這是廣告的標題");
adDomain.setTopicFrom("阿宅");
adDomain.setTopic("“廣告的內容廣告的內容廣告的內容”");
adDomain.setImgUrl(imageLocalUrls[0]);
樣式的元素主要包括:
private String id; //
private String date; // 日期
private String title; // 標題
private String topicFrom; //
private String topic; //
private String imgUrl; // 圖片的url
private boolean isAd; //
private String targetUrl; // 目標url
private int width; // 寬度
private int height; // 高度
private boolean available; //是否可用
private Intent mIntent; //activity跳轉`
在此要再次感謝IT_xiao小巫大神和stevenhu_223大神,感謝,膜拜。。
3.數據設置:
mBannerView.setBannerData(data, new OnImageClickListener() {
@Override
public void onImageClick(BannerInfo info, int postion, View imageView) {
// TODO Auto-generated method stub
//注意此處的postion是從1開始
Toast.makeText(getApplicationContext(), "點擊了"+postion, 1).show();
startActivity(info.getmIntent());
}
});
大概的方法就這麼多,最開始的思路是定義一個實體類包含banner信息,然後使用adapter適配數據,寫的很煩躁。也沒有文中提到的兩位大神的詳細,後來覺得他們寫的很好,也就直接借鑑了。
還有一些需要擴展的地方。。。。(比如將點和數字,改成相應的圖片,添加動圖等),敬請期待。
github:https://github.com/commutescript
歡迎交流,歡迎star。