RollViewPager其实就是我们常常看到的的Android图片轮换一个开源控件,这个控件是别人封装好的我们导入它的内库就可直接使用的,开发起来特别好用,也特别简单,不用我们去写一堆代码。
支持无限循环。 触摸时会暂停播放,直到结束触摸一个延迟周期以后继续播放。 看起来就像这样。指示器可以为点可以为数字还可以自定义,位置也可以变。
效果图:
默认效果:
调整位置:
数字式:
使用步骤:
步骤一:在项目的build.gradle 里面添加内库
步骤二:在xml布局文件中使用控件
<com.jude.rollviewpager.RollPagerView
android:id="@+id/roll_view_pager"
android:layout_width="match_parent"
android:layout_height="180dp"
app:rollviewpager_hint_paddingLeft="360dp"
/>
默认属性:
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