OkHppt+banner








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);
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值