banner轮播

一说到banner,喜闻乐见。以前,项目中一直都是自己去手写这个效果,经基友介绍,github上这么一个库:https://github.com/youth5201314/banner。玩了一下Demo,简直太粗暴!粗暴的不要不要的!!以后再也不用一点一点的去写了!太累~
这里只贴代码,不懂的可以去github上去瞅瞅,很容易。。各种显示效果~~

package com.example.lenovo.demo2.activity;

import android.app.Activity;
import android.os.Bundle;

import com.example.lenovo.demo2.R;
import com.example.lenovo.demo2.view.GlideImageLoader;
import com.youth.banner.Banner;
import com.youth.banner.BannerConfig;
import com.youth.banner.Transformer;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends Activity {
    private Banner banner;
    private List<String> urlList = new ArrayList<>();
    private List<String> titles = new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initData();
        initView();
    }

    private void initData() {
        urlList.add("http://p2.so.qhmsg.com/t012260d3b41f75fd6c.jpg");
        urlList.add("http://p4.so.qhmsg.com/t013ffda9265fda17e9.jpg");
        urlList.add("http://p1.so.qhmsg.com/t01eb38aed4329fff56.jpg");
        urlList.add("http://p3.so.qhmsg.com/t018bad5bce1c4ad613.jpg");
        titles.add("图片1");
        titles.add("图片2");
        titles.add("图片3");
        titles.add("图片4");
    }

    private void initView() {
        banner = (Banner) findViewById(R.id.banner);
        banner.setImages(urlList).setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE).setBannerTitles(titles)
                .setBannerAnimation(Transformer.Tablet).setImageLoader(new GlideImageLoader()).start();
    }
}

xml中的代码:

<com.youth.banner.Banner
        android:id="@+id/banner"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        app:indicator_drawable_selected="@drawable/point_focus"
        app:indicator_drawable_unselected="@drawable/point_normal"
        app:indicator_height="5dp"
        app:indicator_width="5dp"
        app:indicator_margin="6dp"
        app:delay_time="3000"/>
package com.example.administrator.demo.view;

import android.content.Context;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.youth.banner.loader.ImageLoader;

public class GlideImageLoader implements ImageLoader {
    @Override
    public void displayImage(Context context, Object path, ImageView imageView) {
        Glide.with(context).load(path).into(imageView);
    }
}

——————————————————————————————————————————————————————————————————

这里再说一下另一个牛逼的库:https://github.com/xiaohaibin/XBanner,也是牛逼的不得了!

小伙伴们感兴趣,也可以去看下。

package com.example.administrator.demo.activity;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.example.administrator.demo.R;
import com.stx.xhb.xbanner.XBanner;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends Activity{
    private XBanner banner;
    List<String> imgesUrl = new ArrayList<>();
    List<String> titles = new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        banner.setmAdapter(new XBanner.XBannerAdapter() {
            @Override
            public void loadBanner(XBanner banner, View view, int position) {
                Glide.with(MainActivity.this).load(imgesUrl.get(position)).into((ImageView) view);
            }
        });
        banner.setOnItemClickListener(new XBanner.OnItemClickListener() {
            @Override
            public void onItemClick(XBanner banner, int position) {
                Toast.makeText(MainActivity.this, "点击了第"+position+"图片", Toast.LENGTH_SHORT).show();
            }
        });
    }

    private void initView() {
        banner = (XBanner) findViewById(R.id.banner);
        imgesUrl.add("http://p2.so.qhmsg.com/sdr/1620_1080_/t010735afa0402748f2.jpg");
        imgesUrl.add("http://p4.so.qhmsg.com/sdr/1620_1080_/t0158d75d105f22e40e.jpg");
        imgesUrl.add("http://p0.so.qhmsg.com/sdr/1620_1080_/t015cd8db9fb88a395f.jpg");
        imgesUrl.add("http://p4.so.qhmsg.com/t0171dfd7819982118e.jpg");
        titles.add("广告1");
        titles.add("广告2");
        titles.add("广告3");
        titles.add("广告4");
        banner.setPageTransformer(Transformer.Accordion);//设置翻页动画效果
        banner.setData(imgesUrl,titles);//第二个参数为提示文字资源集合

    }

    @Override
    protected void onStart() {
        super.onStart();
        banner.startAutoPlay();
    }

    @Override
    protected void onStop() {
        super.onStop();
        banner.stopAutoPlay();
    }
}

你可能感兴趣的:(banner轮播)