一,添加插件
1,去东软职业技能在线下载插件2,找到需要的插件,并导入到libs里,只需要在build.gradle里面刷新一下就行了刷新就是把第三个步骤先注释点击sync Now,再取消注释再点一下sync Now
这样就刷新成功了,我们就可以正常使用Banner插件了
一般常用的插件有这些
如果没有步骤三的那行代码可以看我第一篇文章,“导入插件”。
二,添加Banner组件(xml)
<com.youth.banner.Banner
android:layout_width="match_parent"
android:layout_height="200dp"
android:id="@+id/banner"
/>
三,创建数据实体类
在乡村民宿的API里找到轮播图的接口,再去postman里去拿到他的json数据,再转换成实体类
我们先创建一个java类,例如Banner_data,复制你请求到的json数据
Alt+s调出窗口把数据复制进JSON窗口里面去,点击ok
这样我们的实体类就自动创建好了。
四,编写Java代码
1,开启一个线程
//开启一个线程
new Thread(()->{
//数据请求
}).start();
2,数据请求
在postman里点击右侧有已经写好的请求,我们可以复制下来并修改一下,提高效率,
复制到刚刚开启的线程里面
有这些红色报错不要慌,只需要把光标移到对应位置按Alt+回车选择improt class即可解决
然后把
Response response = client.newCall(request).execute();
,改为String string = client.newCall(request).execute().body().string();
然后会发现
execute()会有红色波浪线,我们把光标放到上面,Alt+回车,
然后用new Gson拿到实体类里的数据
然后开启一个主线程,找到banner组件的id,然后传参(图片中有注释),
如下图,然后会发现还是会报错,没关系,我们按住Alt+回车就解决了
3,把拿到的数据绑定到banenr组件中
getActivity().runOnUiThread(()->{ /* 实体类 获取的实体类数据data */
binding.banner.setAdapter(new BannerImageAdapter<Banner_data.DataDTO>(data) {
@Override
public void onBindView(BannerImageHolder bannerImageHolder, Banner_data.DataDTO dataDTO, int i, int i1) {
Glide.with(getActivity()).load("http://124.93.196.45:10091/prod-api"+dataDTO.getImage()).into(bannerImageHolder.imageView);
}
});
});
} catch (Exception e) {
e.printStackTrace();
}
with里要传入一个上下文,load里传入一个基础的URl,再加上json数据里传来的url,into里传入控件id
写完这里我们的Banner轮播图就写好了,已经可以正常运行了。
4,我们可以在轮播图中设置一个指示器,以便观看
注意我添加的位置,不要写错地方了哦
<iframe allowfullscreen="true" data-mediaembed="csdn" frameborder="0" id="0XewDG2g-1733542833175" src="https://live.csdn.net/v/embed/437550"></iframe>Banner
这就是最终的轮播图效果
五,创建Activity,用来接收数据,实现跳转详情页面
1,例如我创建的BannerActivity
编写xml的布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".Activity.BannerActivity">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/teal_200"
>
<ImageView
android:id="@+id/return1"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@drawable/left"
android:layout_centerVertical="true"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="民宿列表"
android:gravity="center"
android:textSize="30dp"
android:textStyle="bold"
android:textColor="@color/white"
/>
</RelativeLayout>
<ImageView
android:layout_width="match_parent"
android:layout_height="200dp"
android:scaleType="centerCrop"
android:id="@+id/iv"
/>
</LinearLayout>
用dataDTO.你想拿到的json数据,用一个变量保存,给banenr绑定一个点击事件,点击后再用Intent传输数据,并跳转页面。
intent.putExtra("img",image);
img是要接收的变量名,image是数据
new Intent里传入的是上下文
在创建的BannerActivity的java代码中接收数据
标签:插件,实体类,轮播,数据,民宿,跳转,new,Banner From: https://blog.csdn.net/2402_84145660/article/details/144305706