瀑布流和Banner效果的使用

来源:互联网 发布:淘宝 答案宠物店 假粮 编辑:程序博客网 时间:2024/06/06 01:54
//布局文件
<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"    tools:context="xal.cn.com.moni.Main2Activity"><android.support.v7.widget.RecyclerView    android:id="@+id/mrecycle"    android:layout_width="match_parent"    android:layout_height="match_parent"    /></LinearLayout>

Activity代码
public class Main2Activity extends AppCompatActivity {    ArrayList<Bean.DataBean> list = new ArrayList<>();    @BindView(R.id.mrecycle)    RecyclerView mrecycle;    private MyAdapter adapter;    private ProgressDialog dialog;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main2);        ButterKnife.bind(this);        mrecycle.setLayoutManager(new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL));        adapter = new MyAdapter(list,this);        mrecycle.setAdapter(adapter);        adapter.setOnClickLinser(new MyAdapter.Linsern() {            @Override            public void onclick(int position) {                Intent intent =new Intent(Main2Activity.this,Main3Activity.class);                intent.putExtra("image",list.get(position).getGoods_img());                intent.putExtra("image1",list.get(0).getGoods_img());                startActivity(intent);            }        });        SpacesItemDecoration decoration=new SpacesItemDecoration(16);        mrecycle.addItemDecoration(decoration);        pro();        initData();    }    private void initData() {        OkhttpUtils.getInstance().getNetData("http://m.yunifang.com/yunifang/mobile/goods/getall?random=60305&encode=b0358434fda8d7478bfc325b5828b721&category_id=17", new OkhttpUtils.CallBacks() {            @Override            public void getString(String ss) {                Gson gson = new Gson();                Bean bean = gson.fromJson(ss, Bean.class);                final List<Bean.DataBean> data = bean.getData();//                String img = data.get(0).getGoods_img();                list.addAll(data);                runOnUiThread(new Runnable() {                    @Override                    public void run() {                        dialog.dismiss();                        adapter.notifyDataSetChanged();                    }                });            }        });    }    private void pro() {        dialog = new ProgressDialog(this);        dialog.setMessage("正在加载.....");        dialog.show();    }}
//设置间隔
public class SpacesItemDecoration extends RecyclerView.ItemDecoration  {    private int space;    public SpacesItemDecoration(int space) {        this.space=space;    }    @Override    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {        outRect.left=space;        outRect.right=space;        outRect.bottom=space;        if(parent.getChildAdapterPosition(view)==0){            outRect.top=space;        }    }}

//Banner
public class Main3Activity extends AppCompatActivity {    @BindView(R.id.banner)    Banner banner;    ArrayList<String> images =new ArrayList<>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main3);        ButterKnife.bind(this);        Intent intent = getIntent();        String image = intent.getStringExtra("image");        String image1 = intent.getStringExtra("image1");        images.add(image);        images.add(image1);        //设置图片加载器        banner.setImageLoader(new GlideImageLoader());        //设置图片集合        banner.setImages(images);        //banner设置方法全部调用完毕时最后调用        banner.start();    }}
//Banner所需要的类、
public class GlideImageLoader extends ImageLoader {    @Override    public void displayImage(Context context, Object path, ImageView imageView) {        //Glide 加载图片简单用法        Glide.with(context).load(path).into(imageView);        //用fresco加载图片简单用法,记得要写下面的createImageView方法        Uri uri = Uri.parse((String) path);        imageView.setImageURI(uri);    }}
点击打开链接