viewPager

原创 2016年06月01日 21:11:25
package com.example.day_12_viewpager;

import android.os.Bundle;
import android.app.Activity;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.Menu;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;

public class MainActivity extends Activity {
    String[] path = new String[] {
            "http://imgs.juheapi.com/comic_xin/zbfOxNfWRA==/5010/6-NTAxMDY=.jpg",
            "http://imgs.juheapi.com/comic_xin/zbfOxNfWRA==/5010/16-NTAxMDE2.jpg",
            "http://imgs.juheapi.com/comic_xin/zbfOxNfWRA==/5010/23-NTAxMDIz.jpg",
            "http://imgs.juheapi.com/comic_xin/zbfOxNfWRA==/5010/59-NTAxMDU5.jpg" };
    private LinearLayout ll;
    //记录小圆点的位置
int lastIndex;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ViewPager vp = (ViewPager) findViewById(R.id.vp);

        ll = (LinearLayout) findViewById(R.id.ll);

        vp.setAdapter(new MyPagerAdapter(path, this));

        vp.setCurrentItem(Integer.MAX_VALUE / 2 - Integer.MAX_VALUE / 2
                % path.length);

        vp.setOnPageChangeListener(new OnPageChangeListener() {

            @Override
            public void onPageSelected(int arg0) {
                
                
                
              //取出正确的角标
                int index = arg0 % path.length;
                //取出LinearLayout里当前的imageView
                ImageView imageView = (ImageView) ll.getChildAt(index);
                imageView.setEnabled(false);
                
                ImageView lastImageView = (ImageView) ll.getChildAt(lastIndex);
                lastImageView.setEnabled(true);
                
                //记录当前圆点位置,做为下一次执行onPageSelected方法,变黑的ImageView的位置
                lastIndex=index;
            
            
            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
                // TODO Auto-generated method stub

            }
        });

        setPonit();

    }

    /**
     * 添加小圆点
     */
    private void setPonit() {

        // 小圆点要与图片的个数一致
        for (int i = 0; i < path.length; i++) {
            // 创建imageView
            ImageView imageView = new ImageView(this);
            // 设置小圆点的资源文件
            imageView.setBackgroundResource(R.drawable.backcolor);
            // LayoutParams对象的类型,取决于该控件的父控件类型
            LayoutParams layoutParams = new LayoutParams(
                    LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            // 设置有右间距
            layoutParams.rightMargin = 15;
            // 设置imageView的属性
            imageView.setLayoutParams(layoutParams);
            //初始化第一个小点的颜色
            if (i == 0) {
                imageView.setEnabled(false);
            }
            // 把imageView添加到父控件
            ll.addView(imageView);

        }

    }

}





/**
 *
 */
package com.example.day_12_viewpager;

import com.lidroid.xutils.BitmapUtils;

import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

/**
 * @author WJL
 *
 */
public class MyPagerAdapter extends PagerAdapter {
    String[] path;
    Context context;
    BitmapUtils bitmapUtils;

    /**
     * @param path
     */
    public MyPagerAdapter(String[] path, Context context) {

        this.path = path;
        this.context = context;

        // Xutils里请求网络图片的工具类
        bitmapUtils = new BitmapUtils(context);

    }

    @Override
    public int getCount() {
        return Integer.MAX_VALUE;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {

        ImageView imageView = new ImageView(context);

        int i = position % path.length;

        bitmapUtils.display(imageView, path[i]);

        container.addView(imageView);

        return imageView;

    }

    @Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        // TODO Auto-generated method stub
        return arg0 == arg1;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        // TODO Auto-generated method stub
        // super.destroyItem(container, position, object);

        container.removeView((View) object);

    }
}



Android-ViewPager嵌套使用探究

终于不再是实习生,走出了穷逼的实习生生活,正式开始稍微不那么穷逼的正职员工生活,三天的启航培训还是挺欢乐的,学到一句话,保持饥渴,哈哈,感觉放到哪方面都说得通。回归正题:ViewPager的嵌套使用是...
  • z82367825
  • z82367825
  • 2016年07月16日 23:30
  • 4568

Android进阶——ViewPager详解之初识ViewPager(一)

ViewPager继承自ViewGroup,是左右两个屏幕平滑地切换的一个容器,容器里呈现的视图由对应的Adapter决定,和其他标准的AdapterView类似。简而言之就是我们通过Adapter把...
  • CrazyMo_
  • CrazyMo_
  • 2016年08月03日 16:25
  • 7578

viewpager+将activity转化成view 做主界面(可点击可滑动,超容易理解的demo)

笔者之前已经做过了一个使用viewpgaer轮播效果的博客,但是viewpager本身也是深受androider的喜爱,如今基本每个app都会用到相关的功能,本篇文章也是讲一下用viewpager做主...
  • Double2hao
  • Double2hao
  • 2015年12月05日 09:18
  • 4426

Android顶部导航之TabLayout和ViewPager的组合

  • 2018年01月13日 11:51
  • 19.53MB
  • 下载

ViewPager+Fragment+RadioGroup

  • 2017年12月18日 14:19
  • 83.88MB
  • 下载

ViewPager工具类

  • 2017年12月08日 09:55
  • 9.5MB
  • 下载

使用自定义 LayoutManager 实现 Android 中 Gallery 或者 ViewPager 控件的效果

  • 2017年12月19日 20:37
  • 2.91MB
  • 下载

ViewPager基本使用

  • 2017年12月12日 09:45
  • 18.3MB
  • 下载

自定义 viewpager

  • 2017年11月22日 10:34
  • 9.31MB
  • 下载

viewpager+fragment

  • 2017年10月12日 11:22
  • 20.34MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:viewPager
举报原因:
原因补充:

(最多只允许输入30个字)