public class MainActivity extends AppCompatActivity {
private Banner imgbanner;
private RecyclerView recyclerView;
private int page = 1;
private List<NewsInfo.GoodsListBean> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initview();
ArrayList<String>imgs=new ArrayList<>();
imgs.add("http://img3.cache.netease.com/photo/0003/2017-05-23/CL4NH4IP00AJ0003.jpg");
imgs.add("http://img5.duitang.com/uploads/item/201610/21/20161021102411_5yVMY.jpeg");
imgs.add("http://cdn.duitang.com/uploads/item/201504/20/20150420H3042_na2Mz.thumb.700_0.jpeg");
imgs.add("http://p8.yokacdn.com/pic/YOKA_MEN/2016-09-28/U10053P41TS1475055548_40282.jpg");
imgs.add("http://img4.duitang.com/uploads/item/201502/21/20150221000357_ekkER.jpeg");
imgbanner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR);
imgbanner.setImageLoader(new GlideImageLoader());//加载图片
imgbanner.setImages(imgs);//图片
imgbanner.setDelayTime(1500);//延迟
imgbanner.isAutoPlay(true);
imgbanner.start();//开始轮播
getData("http://apiv3.yangkeduo.com/v5/newlist?page=" + page + "&size=20");
}
//使用okhttp获取网络数据
private void getData(String url) {
Request build = new Request.Builder().url(url).build();
MyApplication.getOkHttpClient().newCall(build).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()) {
String result = response.body().string();
//解析数据
Gson gson = new Gson();
NewsInfo newsInfo = gson.fromJson(result, NewsInfo.class);
list = newsInfo.getGoods_list();
runOnUiThread(new Runnable() {
private RecyclerAdapter recycler;
@Override
public void run() {
recycler = new RecyclerAdapter(list, MainActivity.this);
recyclerView.setAdapter(recycler);
}
});
}
}
});
}
public class GlideImageLoader extends ImageLoader {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
DisplayImageOptions options = new DisplayImageOptions.Builder()
.cacheInMemory(true)//让图片进行内存缓存
.cacheOnDisk(true)//让图片进行sdcard缓存
.showImageOnLoading(R.mipmap.ic_launcher)//图片正在加载的时候显示的图片
.build();
com.nostra13.universalimageloader.core.ImageLoader loader = com.nostra13.universalimageloader.core.ImageLoader.getInstance();
ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(MainActivity.this);
loader.init(configuration);
loader.displayImage((String) path, imageView, options);
}
}
private void initview() {
imgbanner = (Banner) findViewById(R.id.imgbanner);
recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
LinearLayoutManager linearLayoutManager=new LinearLayoutManager(MainActivity.this);
recyclerView.setLayoutManager(linearLayoutManager);
}
}
public class MyApplication extends Application{
private static OkHttpClient okHttpClient;
@Override
public void onCreate() {
super.onCreate();
okHttpClient = new OkHttpClient();
okHttpClient = okHttpClient
.newBuilder()
.connectTimeout(5, TimeUnit.SECONDS)
.readTimeout(5, TimeUnit.SECONDS)
.build();
}
public static OkHttpClient getOkHttpClient() {
return okHttpClient;
}
}
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.MyViewHolder>{
private List<NewsInfo.GoodsListBean> list;
private Context context;
public RecyclerAdapter(List<NewsInfo.GoodsListBean> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(MyViewHolder holder, final int position) {
holder.textview.setText(list.get(position).getGoods_name());
holder.textview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, list.get(position).getGoods_name(), Toast.LENGTH_SHORT).show();
}
});
final String image = list.get(position).getThumb_url();
Glide.with(context)
.load(image)
.into(holder.image);
}
@Override
public int getItemCount() {
return list.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
private ImageView image;
private TextView textview;
public MyViewHolder(View itemView) {
super(itemView);
image = (ImageView) itemView.findViewById(R.id.image);
textview = (TextView) itemView.findViewById(R.id.textview);
}
}
}