图片轮播Android—( RollViewPager)

    RollViewPager其实就是我们常常看到的的Android图片轮换一个开源控件,这个控件是别人封装好的我们导入它的内库就可直接使用的,开发起来特别好用,也特别简单,不用我们去写一堆代码。

             支持无限循环。 触摸时会暂停播放,直到结束触摸一个延迟周期以后继续播放。 看起来就像这样。指示器可以为点可以为数字还可以自定义,位置也可以变。

           效果图:

                              默认效果:       

                             调整位置:

                                 数字式:

使用步骤:

   步骤一:在项目的build.gradle 里面添加内库


 步骤二:在xml布局文件中使用控件

  1. <com.jude.rollviewpager.RollPagerView
  2. android:id= "@+id/roll_view_pager"
  3. android:layout_width= "match_parent"
  4. android:layout_height= "180dp"
  5. app:rollviewpager_hint_paddingLeft= "360dp"
  6. />
   默认属性:

      app:rollviewpager_hint_gravity="center"

    指示器位置,提供left,center,right。默认center(不写也可以)

  自定义属性:
   ① app:rollviewpager_play_delay="3000"

         播放间隔时间,单位ms。填0则不播放。默认为0

   ② app:rollviewpager_hint_color="#7c7c7c"

         指示器背景颜色.默认黑色

   ③ app:rollviewpager_hint_alpha="80" 

        指示器背景透明度。0全透明,255不透明。默认为0

   ④ app:rollviewpager_hint_paddingLeft="16dp"

        指示器左边距

   ⑤ app:rollviewpager_hint_paddingRight="16dp"

        指示器右边距

   ⑥ app:rollviewpager_hint_paddingTop="16dp"

       指示器上边距

   ⑦ app:rollviewpager_hint_paddingBottom="16dp"

       指示器下边距

注意:在要使用到RollViewPager自定义属性的时候,在布局文件当中我们必须添加:

    xmlns:app="http://schemas.android.com/apk/res-auto


    步骤三:写Java代


package e_life.com.testmodel;

import android.graphics.Color;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.ViewGroup;

import android.widget.ImageView;

import android.widget.Toast;

import com.jude.rollviewpager.RollPagerView;

import com.jude.rollviewpager.adapter.LoopPagerAdapter;

import com.jude.rollviewpager.adapter.StaticPagerAdapter;

import com.jude.rollviewpager.hintview.ColorPointHintView;

import com.jude.rollviewpager.hintview.TextHintView;

public class MainActivity extends AppCompatActivity {

private RollPagerView mRollViewPager;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        mRollViewPager = (RollPagerView) findViewById(R.id.roll_view_pager);

        //设置播放时间间隔

        mRollViewPager.setPlayDelay(2000);

        //设置透明度

        mRollViewPager.setAnimationDurtion(500);

        //设置适配器

        mRollViewPager.setAdapter(new TestNormalAdapter(mRollViewPager));

        //自定义指示器图片

        //mRollViewPager.setHintView(new IconHintView(this, R.drawable.point_focus, R.drawable.point_normal));

        //设置圆点指示器颜色

        mRollViewPager.setHintView(new ColorPointHintView(this, Color.YELLOW,Color.WHITE));

        //设置文字指示器

        // mRollViewPager.setHintView(new TextHintView(this));

        //隐藏指示器

        //mRollViewPager.setHint View(null);

       }

    private class TestNormalAdapter extends LoopPagerAdapter {

        private int[] imgs = { //轮播的图片

        R.drawable.title02,

        R.drawable.title05,

        R.drawable.title06,

        R.drawable.title03,

        R.drawable.title04,

      };

        public TestNormalAdapter(RollPagerView viewPager) {

            super(viewPager);

        }

        @Override

        public View getView(ViewGroup container, final int position) {

            ImageView view = new ImageView(container.getContext());

            view.setImageResource(imgs[position]);

            view.setScaleType(ImageView.ScaleType.CENTER_CROP);

    view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,             ViewGroup.LayoutParams.MATCH_PARENT));

            view.setOnClickListener(new View.OnClickListener() {

                        @Override

                        public void onClick(View view) { //点击事件 具体点击了哪一张图片的下标

                                Toast.makeText(MainActivity.this, ""+position, Toast.LENGTH_SHORT).show();

                           }

            });

                        return view;

        }

        @Override

         protected int getRealCount() {

                    return imgs.length;}

         }

      }

  

       最后,博客中可能还有很多没有讲到的东西,可以去geihub里面去看原创的,可以去 学习一下,里面还有对以前版本的bug的修复。地址:https://github.com/Jude95/RollViewPager

 

猜你喜欢

转载自blog.csdn.net/m0_37358427/article/details/80839318