Banner接口展示无线轮播

本文详细介绍了在安卓应用中实现Banner轮播图的方法,包括XML布局配置、代码实现及网络请求数据加载图片,使用Glide进行图片展示,并通过HttpUtils进行网络状态判断和数据获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、布局

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android

android:layout_width="match_parent"
android:layout_height="match_parent">

<com.youth.banner.Banner
    android:id="@+id/banner"
    android:layout_width="match_parent"
    android:layout_height="300dp"/>

二、代码

public class Frag02 extends BaseFragment {

//private static final String TAG = "Frag02";
private Banner banner;

@Override
protected int bindLayout() {
    return R.layout.frag02;
}

@Override
protected void bindEvent() {

}

@Override
protected void initData() {
    if (HttpUtils.isNetworkConnected(getActivity())){
        HttpUtils.httpAsTask("https://www.apiopen.top/meituApi?page=1", new HttpUtils.CallBackA() {
            @Override
            public void getData(String s) {
                Gson gson = new Gson();
                BannerBean list = gson.fromJson(s, BannerBean.class);
                final List<BannerBean.DataBean> data = list.getData();
                // ArrayList<two> list = four.getResult().getItemList();
                banner.setImages(data);

                banner.setImageLoader(new ImageLoader() {
                    @Override
                    public void displayImage(Context context, Object path, ImageView imageView) {
                        BannerBean.DataBean bean= (BannerBean.DataBean) path;
                        //Toast.makeText(getActivity(),bean.toString(),Toast.LENGTH_LONG).show();
                        Glide.with(context).load(data.get(0).getUrl()).into(imageView);
                    }
                });
                //这个位置千万不要错!!!!!!!!!!!!!!!
                banner.setDelayTime(3000);
                banner.isAutoPlay(true);
                banner.start();
            }
        });

    }

}

@Override
protected void initView() {
    banner = bindView(R.id.banner);
}

}

三、辅助类

public class HttpUtils {

//判断网络
public static boolean isNetworkConnected(Context context){
    if (context!=null){
        ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        //获取网络状态
        NetworkInfo networkInfo = mConnectivityManager.getActiveNetworkInfo();
        if (mConnectivityManager!=null){
            return networkInfo.isAvailable();
        }
    }
    return false;
}
//接口
public interface CallBackA{
    void getData(String s);
}
//异步任务
public static void httpAsTask(String strurl,final CallBackA callBackA){
    new AsyncTask<String ,Integer,String>(){
        @Override
        protected String doInBackground(String... strings) {
            return httpGet(strings[0]);
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            callBackA.getData(s);
        }
    }.execute(strurl);
}
//解析方法
public static  String httpGet(String strurl){

    try {
        URL url = new URL(strurl);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("GET");
        connection.setReadTimeout(5000);
        connection.setConnectTimeout(5000);
        InputStream inputStream = connection.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        //得到数据
        StringBuilder builder = new StringBuilder();
        String str="";
        while ((str=reader.readLine())!=null){
            builder.append(str);
        }
        return builder.toString();

    } catch (Exception e) {
        e.printStackTrace();
    }


    return null;
}

}

三、抽屉类

public abstract class BaseFragment extends Fragment {

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    return inflater.inflate(bindLayout(),container,false);

}
//绑定视图
protected abstract int bindLayout();

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    initView();
    initData();
    bindEvent();
    
}
//设置监听
protected abstract void bindEvent();
//操作数据
protected abstract void initData();
//绑定组件
protected abstract void initView();

protected <T extends View > T bindView(int resId){
    return (T) getView().findViewById(resId);
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值