使用AndroidScreenSlidePager開源庫

一、下载地址

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開源庫

使用AndroidScreenSlidePager開源庫

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

使用AndroidScreenSlidePager開源庫

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.

使用AndroidScreenSlidePager開源庫
使用AndroidScreenSlidePager開源庫
<?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="bottomcenter_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);
    }

 


效果图:

使用AndroidScreenSlidePager開源庫

 

使用AndroidScreenSlidePager開源庫

 

更多相关文章
一周排行
  • 题目链接 题意:给定一个无向图和一个点u,找出若干条边组成一个子图,要求这个子图中u到其他个点的最短距离与在原图中的相等,并且要求子图所有边的权重之和最小,求出最小值并输出子图的边号. 思路:先求一遍最短路,从所有到
  • 好久没来写blog了,不能颓了. 这道题的数据范围很小,n<=100.所以直接暴力就可以解决问题,然后,我们发现这个题的读入长度并没有要求,那么我们就需要应用stringstream这个字符串输入流  题目: ...
  • : bad interpreter: 没有那个文件或目录 使用linux的过程中,有时候问题不复杂.解决方法也简单,就是问题太奇怪,汗倒一片专家,就像今天的题目一样. 事件回放: 一台服务器上有少许可执行脚本(即sh
  • 在用php制作项目中,一般都是把页头和页脚分离出来.页头导航在选中状态时会有一些样式,例如active等,当页面在首页时候,导航的首页也应该是active的样式,那么,怎么用php控制这些样式的添加和隐藏呢? 1.在
  • Install pythondev Install DB2 or server driver package easy_install ibm_db Get license file from torolab.    ...
  • 1.删除redhat原有的yum源 # rpm -aq grep yumxargs rpm -e --nodeps 2.下载新的yum安装包  这里我们使用CentOS的yum源 # wget http://mirr
  • XSL 与 XSLT XSL 指扩展样式表语言(EXtensible Stylesheet Language).它主要被用来对XML文档进行格式化,与CSS不同,XSL不仅仅是样式表语言XSL主要包括三个部分: XS ...
  • 问题:k3 BOM资料无法显示明细 解决方法:在选择条件页面,选择正确的修改日期和审核日期 本文出自 "阮胜昌的技术博客" 博客,谢绝转载!
  • NBUT 1449 Annie (模擬)
    [1449] Annie 时间限制: 1 ms 内存限制: 65535 K 问题描述 An ...
  • 1.不想说了.有机会在写 #!/bin/bash cd /opt/my/myfile/myfilemv for name in `ls` do if [ -d $name ] then echo $name > ...