这篇博客就是一个简单的用OkHttp从网上请求一些图片最后用banner展示出来,首先我们先自己定义一个类继承ImageLoader
public class MyApps extends ImageLoader {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
Glide.with(context).load(path).into(imageView);
}
}
OkHttp的封装和Bean类我就不写了,直接就写主方法的类了
public class MainActivity extends AppCompatActivity {
private Banner bnr;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找控件
bnr = findViewById(R.id.bnr);
//请求数据
initData();
}
private void initData() {
OkHttp.getAsync("http://www.babybuy100.com/API/getShopOverview.ashx", new OkHttp.DataCallBack() {
@Override
public void requestFailure(Request request, IOException e) {
Toast.makeText(MainActivity.this,"请求失败",Toast.LENGTH_SHORT).show();
}
@Override
public void requestSuccess(String result) throws Exception {
//gson解析
Gson gson = new Gson();
Bean bean = gson.fromJson(result,Bean.class);
//轮播
List<String> lists = new ArrayList<>();
for (int i = 0; i < bean.getResult().getAdvs().size(); i++) {
lists.add(bean.getResult().getAdvs().get(i).getPic());
}
bnr.setImageLoader(new MyApps());
bnr.setImages(lists);
bnr.start();
}
});
}
}
主方法的布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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"
tools:context="com.example.banner_dome.MainActivity">
<com.youth.banner.Banner
android:id="@+id/bnr"
android:layout_width="match_parent"
android:layout_height="200dp"></com.youth.banner.Banner>
</RelativeLayout>
最后 写完不要忘记依赖和网络请求的权限