android实现轮播图(从互联网上寻找图片)

安辉 2020-01-08

首先开启网络权限

<uses-permission android:name="android.permission.INTERNET" /> //网络权限
 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> //读取SD卡

 接下来是xml文件

<LinearLayout
        android:paddingTop="?android:attr/actionBarSize"
        android:paddingLeft="15sp"
        android:paddingRight="15sp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    <!--<android.support.constraint.ConstraintLayout-->
        <!--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"-->
        <!--android:layout_marginTop="500sp"-->
        <!--tools:context=".MainActivity">-->

        <com.youth.banner.Banner
            android:id="@+id/banner"
            android:layout_width="match_parent"
            android:layout_height="150dp"

            />

    <!--</android.support.constraint.ConstraintLayout>-->


    </LinearLayout>

然后是java文件

//轮播图
    private void initView() {

        banner = (Banner) findViewById(R.id.banner);
        //放图片地址的集合
        list_path = new ArrayList<>();
        //放标题的集合
        list_title = new ArrayList<>();

        list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic21363tj30ci08ct96.jpg");
        list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic259ohaj30ci08c74r.jpg");
        list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic2b16zuj30ci08cwf4.jpg");
        list_path.add("http://ww4.sinaimg.cn/large/006uZZy8jw1faic2e7vsaj30ci08cglz.jpg");
        list_title.add("好学习");
        list_title.add("天天向上");
        list_title.add("热爱劳动");
        list_title.add("不乱搞");
        //设置内置样式,共有六种可以点入方法内逐一体验使用。
        banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);
        //设置图片加载器,图片加载器在下方
        banner.setImageLoader(new MyLoader());
        //设置图片网址或地址的集合
        banner.setImages(list_path);
        //设置轮播的动画效果,内含多种特效,可点入方法内查找后内逐一体验
        banner.setBannerAnimation(Transformer.Default);
        //设置轮播图的标题集合
        banner.setBannerTitles(list_title);
        //设置轮播间隔时间
        banner.setDelayTime(10000);
        //设置是否为自动轮播,默认是“是”。
        banner.isAutoPlay(true);
        //设置指示器的位置,小点点,左中右。
        banner.setIndicatorGravity(BannerConfig.CENTER)
                //以上内容都可写成链式布局,这是轮播图的监听。比较重要。方法在下面。
                .setOnBannerListener(this)
                //必须最后调用的方法,启动轮播图。
                .start();

    }

    /**
     * 轮播监听
     *
     * @param position
     */
    @Override
    public void OnBannerClick(int position) {
        Toast.makeText(this, "你点了第" + (position + 1) + "张轮播图", Toast.LENGTH_SHORT).show();
    }

    /**
     * 网络加载图片
     * 使用了Glide图片加载框架
     */
    private class MyLoader extends ImageLoader {
        @Override
        public void displayImage(Context context, Object path, ImageView imageView) {
            Glide.with(context.getApplicationContext())
                    .load((String) path)
                    .into(imageView);
        }
    }

最后在java文件onCreate方法中直接调用initView()
方法就好了

相关推荐