Banner实现

来源:互联网 发布:按键精灵编程语言 编辑:程序博客网 时间:2024/06/09 18:00

首先导依赖

compile 'com.youth.banner:banner:1.4.9'compile 'com.github.bumptech.glide:glide:3.7.0'
建立属于自己的Banner

public class MyBanner extends ImageLoader {    @Override    public void displayImage(Context context, Object path, ImageView imageView) {        Glide.with(context).load(path).into(imageView);    }}
在Layout中写上Banner布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    ><com.youth.banner.Banner    android:id="@+id/ban"    android:layout_width="match_parent"    android:layout_height="220dp"></com.youth.banner.Banner>    <android.support.v7.widget.RecyclerView        android:id="@+id/rv"        android:layout_width="match_parent"        android:layout_height="match_parent">    </android.support.v7.widget.RecyclerView></LinearLayout>

在Activity中调用建立一个blist

public class fragnew extends Fragment {    View view;    private Banner mBan;    private RecyclerView mRv;    List<String> blist=new ArrayList<String>();    New news;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {          view = View.inflate(getActivity(), R.layout.frag_new, null);          initView();          initData();          return view;    }    private void initView() {        mBan = (Banner) view.findViewById(R.id.ban);        mRv = (RecyclerView) view.findViewById(R.id.rv);        LinearLayoutManager manger = new LinearLayoutManager(getActivity());        mRv.setLayoutManager(manger);    }    private  void initData() {        OkHttpUtils.getInstance().doGet(" http://news-at.zhihu.com/api/4/news/latest", new OnUiCallback() {            @Override            public void onFailed(Call call, IOException e) {                Toast.makeText(getActivity(),"失败",Toast.LENGTH_SHORT).show();            }            @Override            public void onSuccess(final String result) throws IOException {                final String s=result;                Toast.makeText(getActivity(),"成功",Toast.LENGTH_SHORT).show();                getActivity().runOnUiThread(new Runnable() {                    @Override                    public void run() {                        news=new New();                        news=new Gson().fromJson(s,New.class);                        MyRecyAdapter adapter=new MyRecyAdapter(getActivity(),news);                        mRv.setAdapter(adapter);                        mRv.addItemDecoration(new RecycleViewDivider(getActivity(), LinearLayoutManager.HORIZONTAL));                        //Banner将blist集合中放入轮播要展示的图片                        for(int i=0;i<news.getTop_stories().size();i++){                            blist.add(news.getTop_stories().get(i).getImage());                        }                        mBan.setImageLoader(new MyBanner());                        mBan.setImages(blist);                        mBan.start();                    }                });            }        });    }}

原创粉丝点击