android实现滑动切换图,Android:使用ViewPager实现左右滑动切换图片加点点
图片发自简书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实现左右滑动切换图片加点点相关推荐
- Android开发教程 - 使用Data Binding(七)使用BindingAdapter简化图片加载
本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fr ...
- css图片滑动切换图_CSS帧动画
前言 是不是很多人认为只有连续的变化才叫动画. 上图是连续旋转变化,下图是断断续续切换状态,请查看以下两个动画: 是否认知的感觉又强烈了一点呢? 假设我把下图的 loading 播放速度加快,继续看: ...
- android用sax解析xml,Android:采用SAX解析XML实例
接着之前的部分现在要编写代码解析如下的person.xml文件 liming 30 xiaohong 25 程序结构图如下 person类用于保存信息 SAXPersonService负责解析 pac ...
- Android 实现上拉背景模糊,Android开发者珍藏必备【开源项目篇】
日历 星期视图日历 日历列表视图 material风格的日历 提交日历日期 适配MD风格日历 toolbar相结合的弹出日历 横向日历 Tab Material风格的Tab Material风格的Ta ...
- Android图片加载库的封装实战
重磅更新 2017-02-16 2017-05-09 优化圆形图片加载 更新demo 前言 主流图片加载库的对比 Android-Universal-Image-Loader Picasso Glid ...
- Android图片加载库—Picasso一个强大的图像下载和缓存库
介绍 GitHub源码 点击查看 Picasso是一款强大的图片下载和缓存开源软件,只能在Android平台上使用,由Square开发.使用Picasso可以添加一些必须的特性和视觉效果到Androi ...
- android本页切换子页,android ViewPager控件实现手势滑动切换页签-Fun言
1,主布局文件 android:layout_width="match_parent" android:layout_height="match_parent" ...
- android ViewPager页面左右滑动切换
我们日常生活中用到的微博,QQ,微信等app在进行页面左右滑动的时候,很多都可以用ViewPager来实现.可以说,ViewPager在android开发中十分常见并且特别实用. Viewpager在 ...
- Android ViewPager多页面滑动切换以及动画效果---换view
一.首先,我们来看一下效果图,这是新浪微博的Tab滑动效果.我们可以手势滑动,也可以点击上面的头标进行切换.与此同方式, 白色横条会移动到相应的页卡头标下.这是一个动画效果,白条是缓慢滑动过去的.好了 ...
最新文章
- 使用C++实现一套简单的状态机模型——原理解析
- 不管走多远,不要忘记停下来想想当初为何出发
- Github上最受关注的前端大牛,快来膜拜吧!
- Java黑皮书课后题第8章:*8.16(对二维数组排序)编写一个方法,使用下面的方法头对二维数组排序。这个方法首先按行排序,然后按列排序
- 【第三期】那些设计漂亮、有创意的电路板!
- mysql自动提交的概念_MySQL入门之事务概念
- python--- 之The program 'python' can be found in the following packages: * python-minimal * python3
- Tomcat access log配置
- (五)洞悉linux下的Netfilteriptables:如何理解连接跟踪机制?(1)
- C语言连接Oracle数据库
- 数字逻辑电路中逻辑门的符号_数字计算机中使用的逻辑门
- keil4和keil5如何兼容使用
- sql server的增删改查语句
- 外文文献找不到怎么办?
- Proptech崛起,房地产产业数智化,成了2020年的新风口
- 华为eNSP和思科PNET如何正确调用抓包软件
- 数据库的查询、视图和游标
- 营养素的基础知识1(非技术文)
- Maven导入jar包失败问题,lastUpdated问题解决
- 宝鸡计算机软件的工作,宝鸡学计算机软件编程
热门文章
- 在linux安装requests库命令,在Linux--Ubuntu18.04环境下安装requests库
- java安全(五)java反序列化
- linux python复制安装,复制一个Python全部环境到另一个环境,python另一个,导出此环境下安装的包...
- 云服务器 自有操作系统,云服务器 自有操作系统
- 2021年呼和浩特高考段考成绩查询,2019届呼和浩特市高三段考成绩排名分析
- cuisineroyale服务器所在位置,cuisine royale进不去怎么办?原因及解决办法分享
- base64 能放数组里面么_数组:总结篇
- 日常问题——解决mac下 ssh: connect to host localhost port 22: Connection refused
- Problem C: 顺序表基本运算(线性表)
- Python自动化开发学习13-联合唯一