依赖
androidx:implementation 'com.github.xiaohaibin:XBanner:androidx_v1.0.6'
android普通版本: implementation 'com.github.xiaohaibin:XBanner:1.7.3'
配置仓库
maven { url 'https://jitpack.io' }
清单文件加入网络权限
<uses-permission android:name="android.permission.INTERNET" />
布局中使用
<com.stx.xhb.xbanner.XBanner android:id="@+id/home_banner" android:layout_width="@dimen/dp_280" android:layout_height="@dimen/dp_150" android:layout_marginLeft="@dimen/dp_30" android:layout_marginTop="@dimen/dp_10" app:AutoPlayTime="3000" app:isAutoPlay="true" app:isClipChildrenMode="true" app:isShowNumberIndicator="true" app:pointsPosition="RIGHT" app:tipTextSize="20dp" />
初始化
XBanner homebanner= (XBanner) findViewById(R.id.home_banner);
使用 setBannerData() 方法进行设置
注://setData()方法已过时,推荐使用setBannerData()方法
传递集合数据中的泛型类型要继承 SimpleBannerInfo 实现 getXBannerUrl 返回当前类的网络图片路径
图片加载
mXBanner.loadImage(new XBanner.XBannerAdapter() {
@Override
public void loadBanner(XBanner banner, Object model, View view, int position) { //1、此处使用的Glide加载图片,可自行替换自己项目中的图片加载框架
//2、返回的图片路径为Object类型,你只需要强转成你传输的类型就行 切记 不要胡乱强转!
//Glide网络框架加载图片
Glide.with(MainActivity.this).load(path).placeholder(R.drawable.default_image).error(R.drawable.default_image).into((ImageView) view); } });
如果写到这里 测试发现APP闪退 报:java.lang.IllegalArgumentException: You must not call setTag() on a view Glide is targeting 这个异常 -------请点击 --异常
轮播图片的点击事件
mXBanner.setOnItemClickListener(new XBanner.OnItemClickListener() {
@Override public void onItemClick(XBanner banner, Object model,View view, int position) {
Toast.makeText(MainActivity.this, "点击了第"+position+"图片", Toast.LENGTH_SHORT).show();
}});
附上效果图:
附上作者
Github :https://github.com/xiaohaibin/XBanner
网友评论