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);
- }