一、下载地址

https://github.com/LyndonChin/AndroidScreenSlidePager

点击右侧的Download ZIp按钮进行下载。然后解压缩到本地。

二、使用方法

1、复制AndroidScreenSlidePager-master\SlidePageIndicator\src\main\java\com\liangfeizc\slidepageindicator目录下的PageIndicator.java文件到项目中任意一个包中。以及AndroidScreenSlidePager-master\SlidePageIndicator\src\main\res目录中的drawable文件夹中的三个文件复制到项目中相应的位置

然后将AndroidScreenSlidePager-master\SlidePageIndicator\src\main\res目录下的values文件夹中的styles里面的代码复制到项目的styles.xml文件中。

2、我使用的布局框架是ViewPager+fragment,然后在fragment中使用volley(NetworkImageView)展现图片。

关键代码如下:

private static final String[] IMAGES = new String[] {
"http://img1.cache.netease.com/catchpic/B/B2/B2F274C1CCD5A89133261E6252A0C8E9.jpg",
"http://img5.duitang.com/uploads/item/201408/09/20140809204759_CwtQN.jpeg",
"http://img5q.duitang.com/uploads/item/201204/06/20120406151343_HefME.jpeg",
"http://images.qianlong.com/mmsource/imghylanda/201108/25/21/7131919880274907937.jpg",
"http://imgsrc.baidu.com/forum/pic/item/78370e46f91582056a63e576.jpg"};

布局文件:

CirclePageIndicator and ViewPager shoud be used as child views of a Framelayout. But here we used merge instead, because the root view in any activity is a FrameLayout. You can use android:gravity to position the CirclePageIndicator and use app:indicator_spacing to adjust the spacing between two adjencent circle indicators.

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent" > <!-- viewPager:图片展现 -->
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" /> <!-- 指示器圆点 -->
<com.why.screenslidepagerdemo.custom.PageIndicator
android:id="@+id/indicator"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="20dp"
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"
android:gravity="bottom|center_horizontal"
app:indicator_spacing="5dp"
app:indicator_type="fraction" /> </merge>

activity_slidepager

Java代码:

private ViewPager pager;//图片ViewPager
private SlidePagerAdapter adapter;//ViewPager适配器 private PageIndicator indicator;//指示器 private String[] picsArray;//图片URL地址的数组 //初始化控件
private void initView(){
pager = (ViewPager) findViewById(R.id.pager);
indicator = (PageIndicator) findViewById(R.id.indicator);
} //初始化适配器
private void initAdapter(){
adapter = new SlidePagerAdapter(getSupportFragmentManager(),Arrays.asList(picsArray));
pager.setAdapter(adapter);
} //初始化监听事件
private void initEvent(){
indicator.setViewPager(pager);//这个是关联指示器类的关键代码
indicator.setIndicatorType(PageIndicator.IndicatorType.CIRCLE);
}

右侧的菜单代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.slidepager, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_indicator_circle) {
indicator.setIndicatorType(PageIndicator.IndicatorType.CIRCLE);
}else if(id == R.id.action_indicator_fraction){
indicator.setIndicatorType(PageIndicator.IndicatorType.FRACTION);
}
return super.onOptionsItemSelected(item);
}

效果图:

最新文章

  1. 使用Jayrock开源组件开发基于JSON-RPC协议的接口
  2. editplus中使用emmet?
  3. VS2010安装异常中断后无法安装的解决方法(安装时发生严重错误)
  4. 老鼠跑猫叫主人惊醒c++观察者模式实现
  5. C++学习49 对二进制文件的读写操作
  6. TcxDBTreeList导出EXCEL
  7. UI1_ScrollViewHomeWork
  8. Wii硬盘游戏管理
  9. AVS、MPEG-2、H264标准文档
  10. Awesome-Text-Classification:文本分类资源合集
  11. java开发中几种常见的线程池
  12. Java自学编程学习之路资源合集
  13. PAT1011:World Cup Betting
  14. python获取set-cookies
  15. Cglib动态代理实现原理
  16. Spark History Server产生背景
  17. 2017-4-12/session
  18. java之不修改变量的数据类型的处理方式
  19. (机器学习)小试牛刀 利用Zapier和MonkeyLearn
  20. debian之apt源

热门文章

  1. 解决:Eclipse导入工程后全是错误,连基本类型都不识别
  2. bzoj 1095 [ZJOI2007]Hide 捉迷藏(括号序列+线段树)
  3. NOIP2004 合唱队列
  4. NOIP2006 作业调度方案
  5. HDU 1698 Just a Hook 区间更新 lazy标记
  6. OWC控件的使用
  7. 在win64位,python64位2.7版本中安装pyHook
  8. WebApi Json格式化
  9. openstack系列阅读目录
  10. view 与layer