图片发自简书App

1、引入android-support-v4.jar包,在主布局里加入

< ?xml version="1.0" encoding="utf-8"?>

< RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:id="@+id/layout"

tools:context="com.zjq.viewpager.MainActivity">

< android.support.v4.view.ViewPager

android:id="@+id/viewPager"

android:layout_width="match_parent"

android:layout_height="wrap_content">

< /android.support.v4.view.ViewPager>

< LinearLayout

android:id="@+id/viewGroup"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_alignParentBottom="true"

android:layout_marginBottom="40dp"

android:gravity="center_horizontal"

android:orientation="horizontal" >

< /LinearLayout>

< /RelativeLayout >

其他几个子布局都一样 例如 item01 :

< ?xml version="1.0" encoding="utf-8"?>

< LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent">

< ImageView

android:layout_width="match_parent"

android:layout_height="match_parent"

android:src="@drawable/view1"

android:scaleType="centerCrop"

/>

2、加载切换内容

3、ViewPager加载适配器PagerAdapter

public class MainActivity extends Activity {

private ViewPager viewPager;

private ArrayList pageview;

private ImageView imageView;

private ImageView[] imageViews;

//包裹点点的LinearLayout

private ViewGroup group;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//设置无标题栏

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.activity_main);

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

//查找布局文件用LayoutInflater.inflate

LayoutInflater inflater =getLayoutInflater();

View view1 = inflater.inflate(R.layout.item01, null);

View view2 = inflater.inflate(R.layout.item02, null);

View view3 = inflater.inflate(R.layout.item03, null);

View view4 = inflater.inflate(R.layout.item04, null);

//将view装入数组

pageview =new ArrayList();

pageview.add(view1);

pageview.add(view2);

pageview.add(view3);

pageview.add(view4);

group = (ViewGroup)findViewById(R.id.viewGroup);

//有多少张图就有多少个点点

imageViews = new ImageView[pageview.size()];

for(int i =0;i

imageView = new ImageView(MainActivity.this);

imageView.setLayoutParams(new LayoutParams(20,20));

imageView.setPadding(20, 0, 20, 0);

imageViews[i] = imageView;

//默认第一张图显示为选中状态

if (i == 0) {

imageViews[i].setBackgroundResource(R.drawable.page_indicator_focused);

} else {

imageViews[i].setBackgroundResource(R.drawable.page_indicator_unfocused);

}

group.addView(imageViews[i]);

}

//绑定适配器

viewPager.setAdapter(mPagerAdapter);

//绑定监听事件

viewPager.setOnPageChangeListener(new GuidePageChangeListener());

}

//数据适配器

PagerAdapter mPagerAdapter = new PagerAdapter(){

@Override

//获取当前窗体界面数

public int getCount() {

// TODO Auto-generated method stub

return pageview.size();

}

@Override

//断是否由对象生成界面

public boolean isViewFromObject(View arg0, Object arg1) {

// TODO Auto-generated method stub

return arg0==arg1;

}

//是从ViewGroup中移出当前View

public void destroyItem(View arg0, int arg1, Object arg2) {

((ViewPager) arg0).removeView(pageview.get(arg1));

}

//返回一个对象,这个对象表明了PagerAdapter适配器选择哪个对象放在当前的ViewPager中

public Object instantiateItem(View arg0, int arg1){

((ViewPager)arg0).addView(pageview.get(arg1));

return pageview.get(arg1);

}

};

//pageView监听器

class GuidePageChangeListener implements OnPageChangeListener{

@Override

public void onPageScrollStateChanged(int arg0) {

// TODO Auto-generated method stub

}

@Override

public void onPageScrolled(int arg0, float arg1, int arg2) {

// TODO Auto-generated method stub

}

@Override

//如果切换了,就把当前的点点设置为选中背景,其他设置未选中背景

public void onPageSelected(int arg0) {

// TODO Auto-generated method stub

for(int i=0;i

imageViews[arg0].setBackgroundResource(R.drawable.page_indicator_focused);

if (arg0 != i) {

imageViews[i].setBackgroundResource(R.drawable.page_indicator_unfocused);

}

}

}

} }

android实现滑动切换图,Android:使用ViewPager实现左右滑动切换图片加点点相关推荐

  1. Android开发教程 - 使用Data Binding(七)使用BindingAdapter简化图片加载

    本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fr ...

  2. css图片滑动切换图_CSS帧动画

    前言 是不是很多人认为只有连续的变化才叫动画. 上图是连续旋转变化,下图是断断续续切换状态,请查看以下两个动画: 是否认知的感觉又强烈了一点呢? 假设我把下图的 loading 播放速度加快,继续看: ...

  3. android用sax解析xml,Android:采用SAX解析XML实例

    接着之前的部分现在要编写代码解析如下的person.xml文件 liming 30 xiaohong 25 程序结构图如下 person类用于保存信息 SAXPersonService负责解析 pac ...

  4. Android 实现上拉背景模糊,Android开发者珍藏必备【开源项目篇】

    日历 星期视图日历 日历列表视图 material风格的日历 提交日历日期 适配MD风格日历 toolbar相结合的弹出日历 横向日历 Tab Material风格的Tab Material风格的Ta ...

  5. Android图片加载库的封装实战

    重磅更新 2017-02-16 2017-05-09 优化圆形图片加载 更新demo 前言 主流图片加载库的对比 Android-Universal-Image-Loader Picasso Glid ...

  6. Android图片加载库—Picasso一个强大的图像下载和缓存库

    介绍 GitHub源码 点击查看 Picasso是一款强大的图片下载和缓存开源软件,只能在Android平台上使用,由Square开发.使用Picasso可以添加一些必须的特性和视觉效果到Androi ...

  7. android本页切换子页,android ViewPager控件实现手势滑动切换页签-Fun言

    1,主布局文件 android:layout_width="match_parent" android:layout_height="match_parent" ...

  8. android ViewPager页面左右滑动切换

    我们日常生活中用到的微博,QQ,微信等app在进行页面左右滑动的时候,很多都可以用ViewPager来实现.可以说,ViewPager在android开发中十分常见并且特别实用. Viewpager在 ...

  9. Android ViewPager多页面滑动切换以及动画效果---换view

    一.首先,我们来看一下效果图,这是新浪微博的Tab滑动效果.我们可以手势滑动,也可以点击上面的头标进行切换.与此同方式, 白色横条会移动到相应的页卡头标下.这是一个动画效果,白条是缓慢滑动过去的.好了 ...

最新文章

  1. 使用C++实现一套简单的状态机模型——原理解析
  2. 不管走多远,不要忘记停下来想想当初为何出发
  3. Github上最受关注的前端大牛,快来膜拜吧!
  4. Java黑皮书课后题第8章:*8.16(对二维数组排序)编写一个方法,使用下面的方法头对二维数组排序。这个方法首先按行排序,然后按列排序
  5. 【第三期】那些设计漂亮、有创意的电路板!
  6. mysql自动提交的概念_MySQL入门之事务概念
  7. python--- 之The program 'python' can be found in the following packages: * python-minimal * python3
  8. Tomcat access log配置
  9. (五)洞悉linux下的Netfilteriptables:如何理解连接跟踪机制?(1)
  10. C语言连接Oracle数据库
  11. 数字逻辑电路中逻辑门的符号_数字计算机中使用的逻辑门
  12. keil4和keil5如何兼容使用
  13. sql server的增删改查语句
  14. 外文文献找不到怎么办?
  15. Proptech崛起,房地产产业数智化,成了2020年的新风口
  16. 华为eNSP和思科PNET如何正确调用抓包软件
  17. 数据库的查询、视图和游标
  18. 营养素的基础知识1(非技术文)
  19. Maven导入jar包失败问题,lastUpdated问题解决
  20. 宝鸡计算机软件的工作,宝鸡学计算机软件编程

热门文章

  1. 在linux安装requests库命令,在Linux--Ubuntu18.04环境下安装requests库
  2. java安全(五)java反序列化
  3. linux python复制安装,复制一个Python全部环境到另一个环境,python另一个,导出此环境下安装的包...
  4. 云服务器 自有操作系统,云服务器 自有操作系统
  5. 2021年呼和浩特高考段考成绩查询,2019届呼和浩特市高三段考成绩排名分析
  6. cuisineroyale服务器所在位置,cuisine royale进不去怎么办?原因及解决办法分享
  7. base64 能放数组里面么_数组:总结篇
  8. 日常问题——解决mac下 ssh: connect to host localhost port 22: Connection refused
  9. Problem C: 顺序表基本运算(线性表)
  10. Python自动化开发学习13-联合唯一