依賴:
implementation 'com.github.xiaohaibin:XBanner:1.6.1'
權限:
<uses-permission android:name="android.permission.INTERNET" />
佈局:
<com.stx.xhb.xbanner.XBanner
android:id="@+id/xbanner"
android:layout_width="match_parent"
android:layout_height="260dp"
android:layout_gravity="center"
app:isClipChildrenMode="true" />
代碼:
//控件
XBanner xBanner = view.findViewById(R.id.xbanner);
/**
* 解析json數據賦值給XBanner
*/
Gson gson = new Gson();
MyBanner myBanner = gson.fromJson(banner, MyBanner.class);
final List<MyBanner.ResultBean> result = myBanner.getResult();
/**
* 因爲我數據請求下來在子線程,所以用的runOnUiThread更新的UI效果
*/
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
//集合設置給XBanner
xBanner.setData(result, null);
//加載圖片
xBanner.loadImage(new XBanner.XBannerAdapter() {
@Override
public void loadBanner(XBanner banner, Object model, View view, int position) {
Glide.with(getActivity()).load(result.get(position).getImageUrl()).into((ImageView) view);
//延遲時間
banner.setPageChangeDuration(3000);
}
});
/**
* 點擊跳轉傳值
*/
xBanner.setOnItemClickListener(new XBanner.OnItemClickListener() {
@Override
public void onItemClick(XBanner banner, Object model, View view, int position) {
Intent intent = new Intent(getActivity(), WebActivity.class);
intent.putExtra("url", result.get(position).getJumpUrl());
startActivity(intent);
}
});
}
});
XBanner屬性詳解:https://blog.csdn.net/qq_40543575/article/details/79549286