Android 循环切换图片 ConvenientBanner简单应用

来源:互联网 发布:琵琶是不是中国 知乎 编辑:程序博客网 时间:2024/06/07 17:50


       引用 库地址:https://github.com/saiwu-bigkoo/Android-ConvenientBanner

                   

        demo是用Module方式依赖,

         studio 用的话直接添加个依赖就可以用了

gradle依赖:

 compile 'com.bigkoo:convenientbanner:2.0.5'

布局xml

    
<?xml version="1.0" encoding="utf-8"?><RelativeLayout 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">    <com.bigkoo.convenientbanner.ConvenientBanner        xmlns:app="http://schemas.android.com/apk/res-auto"        android:id="@+id/convenientBanner"        android:layout_width="match_parent"        android:layout_height="match_parent"        app:canLoop="true"    /></RelativeLayout>
      
      

Java代码:加载资源文件里面的图片

   
package test.example.xuexue.convenientbanner;import android.content.Context;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.ImageView;import com.bigkoo.convenientbanner.ConvenientBanner;import com.bigkoo.convenientbanner.holder.CBViewHolderCreator;import com.bigkoo.convenientbanner.holder.Holder;import java.util.ArrayList;import java.util.List;import javax.xml.transform.Transformer;public class MainActivity extends AppCompatActivity {    private ConvenientBanner convenientBanner;    private List<Integer> imgs=new ArrayList<>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        imgs.add(R.drawable.b1);        imgs.add(R.drawable.b2);        imgs.add(R.drawable.b3);        imgs.add(R.drawable.guide1);        //找控件        convenientBanner = (ConvenientBanner) findViewById(R.id.convenientBanner);        convenientBanner.setPages(new CBViewHolderCreator() {            @Override            public Object createHolder() {                return new LocalImageHolderView();            }        },imgs) //设置需要切换的View                .setPointViewVisible(true)    //设置指示器是否可见         //设置两个点图片作为翻页指示器,不设置则没有指示器,可以根据自己需求自行配合自己的指示器,不需要圆点指示器可用不设         .setPageIndicator(new int[]{R.mipmap.ic_launcher,R.mipmap.ic_launcher})                //设置指示器位置(左、中、右)        .setPageIndicatorAlign(ConvenientBanner.PageIndicatorAlign.ALIGN_PARENT_RIGHT)                .startTurning(2000)     //设置自动切换(同时设置了切换时间间隔)                .setManualPageable(true)  //设置手动影响(设置了该项无法手动切换)        //设置翻页的效果,不需要翻页效果可用不设//        .setPageTransformer(Transformer.DefaultTransformer)        ;//        convenientBanner.setManualPageable(false);//设置不能手动影响        }    public class LocalImageHolderView implements Holder<Integer>{        private ImageView imageView;        @Override        public View createView(Context context) {            imageView = new ImageView(context);            imageView.setScaleType(ImageView.ScaleType.FIT_XY);            return imageView;        }        @Override        public void UpdateUI(Context context, int position, Integer data) {            imageView.setImageResource(data);        }    }}

     感觉比viewpager简单,易操作,这个可以自动实现自动轮播,小圆点
      
加载网络图片的JAVA代码:
convenientBanner.setPages(new CBViewHolderCreator() {            @Override            public Object createHolder() {                return new LocalImageHolderView();            }        }, mList) //mList是图片地址的集合                .setPointViewVisible(true)    //设置指示器是否可见                //设置两个点图片作为翻页指示器,不设置则没有指示器,可以根据自己需求自行配合自己的指示器,不需要圆点指示器可用不设                .setPageIndicator(new int[]{R.drawable.normal, R.drawable.unnormal})                //设置指示器位置(左、中、右)                .setPageIndicatorAlign(ConvenientBanner.PageIndicatorAlign.CENTER_HORIZONTAL)                .startTurning(2000)     //设置自动切换(同时设置了切换时间间隔)                .setManualPageable(true)  //设置手动影响(设置了该项无法手动切换)        ;    }    class LocalImageHolderView implements Holder<String> {        private ImageView imageView;        @Override        public View createView(Context context) {            imageView = new ImageView(context);            imageView.setScaleType(ImageView.ScaleType.FIT_XY);            return imageView;        }        @Override        public void UpdateUI(Context context, int position, String data) {
          //glide加载出图片,data是传过来的图片地址,           Glide.with(mActivity).load(data).into(imageView);        }    }


    

      

0 0
原创粉丝点击