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

 

更多相关文章
一周排行
  • 以管理员登录为例来介绍下$this->ajaxReturn与模板页进行ajax交互使用方法 首先看PHP控制器的处理,在application/Admin/Controller/LoginController. ...
  • 


    		    SCVMM之V2V轉換
    实战SCVMM2008之V2V转换 SCVMM2008是微软出品的一款功能强大的虚拟机管理
  • if exists(select * from test.dbo.test1 where a='1') begin print('exists ') end else begin print('no exists ' ...
  • http://baike.baidu.com/view/724336.htm 设置方法 注意 以下所说的页面文件就是指自己设定的虚拟内存尽量避免将页面文件和系统文件置于同一驱动器上. 避免将页面文件放入容错驱动器,例
  • Eclipse與Android源碼中ProGuard工具的使用
    由于工作需要,这两天和同事在研究android下面的ProGuard工具的使用,通过查看a ...
  • 


    		    RHEL 6.2 64位安裝ORACLE 11G R2
    1.安装环境: 操作系统及版本 [root@stone ~]# cat /etc/issu ...
  • 在VC中调用内置浏览器(我是用CDhtmlDialog)中的javascript有很多种方法,但是有的不能返回结果,有的不能调用javascript系统函数.下面的我用过的方法,小结一下: 第一种:通过execScr
  • 题目: 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数. for i in range(100,1): a=i/100; b=(i/10)%10; c=i%10; if a**3+
  •     随着 .NET 4.0的到来,她与以前各版本的一个明显差别就是并行功能的增强,以此来适应这个多核的世界.于是引入了一个新概念任务,作为支持并行运算的重要组成部分,同时,也作为对线程池的一个补充和完善.从所周知 ...
  • LeetCode60. Permutation Sequence
    Permutation Sequence The set [1,2,3,…,n] cont