第三方很好的轮播图控件

github地址:https://github.com/youth5201314/banner

一,依赖

因为网络图片需要有一个加载网络图片的框架

所以我选择了很火的glide

compile 'com.youth.banner:banner:1.4.9'  //最新版本
compile 'com.github.bumptech.glide:glide:3.7.0'

第三方很好的轮播图控件_第1张图片

二,加载网络图片的ImageLoader

public class GlideImageLoader extends ImageLoader {
    @Override
    public void displayImage(Context context, Object path, ImageView imageView) {
        /**
         注意:
         1.图片加载器由自己选择,这里不限制,只是提供几种使用方法
         2.返回的图片路径为Object类型,由于不能确定你到底使用的那种图片加载器,
         传输的到的是什么格式,那么这种就使用Object接收和返回,你只需要强转成你传输的类型就行,
         切记不要胡乱强转!
         */
        Glide.with(context)
                .load(path)//图片地址
                .crossFade()
                .into(imageView);
    }
}

三,代码

package com.example.administrator.bannertestdemo;

import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ImageView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.youth.banner.Banner;
import com.youth.banner.BannerConfig;
import com.youth.banner.listener.OnBannerClickListener;
import com.youth.banner.loader.ImageLoader;

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

public class MainActivity extends AppCompatActivity {
    Banner banner;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        banner = (Banner) findViewById(R.id.banner);
        initBanner();
    }

    private void initBanner() {
        List list = new ArrayList<>();
        list.add("http://img.juimg.com/tuku/yulantu/140426/330468-14042622395338.jpg");
        list.add("http://v1.qzone.cc/pic/201310/13/16/59/525a61001712d974.jpg!600x600.jpg");
        list.add("http://v1.qzone.cc/pic/201310/13/17/00/525a6117b5531062.jpg!600x600.jpg");
        banner.setImages(list)
                .setImageLoader(new GlideImageLoader())
                .setDelayTime(2000)
                .setIndicatorGravity(BannerConfig.RIGHT)
                .start();
        //banner点击事件 position为当前显示的第几张图,从1开始,不是0
        banner.setOnBannerClickListener(new OnBannerClickListener() {
            @Override
            public void OnBannerClick(int position) {
                Toast.makeText(MainActivity.this, "点击了" + String.valueOf(position) + "个", Toast.LENGTH_SHORT).show();
            }
        });
    }

    public class GlideImageLoader extends ImageLoader {
        @Override
        public void displayImage(Context context, Object path, ImageView imageView) {
            /**
             注意:
             1.图片加载器由自己选择,这里不限制,只是提供几种使用方法
             2.返回的图片路径为Object类型,由于不能确定你到底使用的那种图片加载器,
             传输的到的是什么格式,那么这种就使用Object接收和返回,你只需要强转成你传输的类型就行,
             切记不要胡乱强转!
             */
            Glide.with(context)
                    .load(path)//图片地址
                    .crossFade()
                    .into(imageView);
        }
    }
}

四,xml布局

    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.administrator.bannertestdemo.MainActivity">

            android:id="@+id/banner"
        android:layout_width="match_parent"
        android:layout_height="200dp"/>


五,权限

android:name="android.permission.INTERNET" />
android:name="android.permission.READ_EXTERNAL_STORAGE" />

六,效果


你可能感兴趣的:(安卓轮播图,android控件)