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

3aabe39f674a

图片发自简书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);

}

}

}

} }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/541262.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html的柱状图去除右边纵坐标,excel如何把次坐标轴逆序

excel2010设置水平坐标轴逆序类型,但垂直坐标轴刻设置水平坐标轴逆序且垂直坐标轴轴仍位于图表左侧的步骤是&#xff1a;打开带有图表的Excel工作表&#xff1b;在图表区域的水平轴标签位置双击鼠标左键&#xff0c;打开“设置坐标轴格式”&#xff1b;勾寻逆序类别”&#xff…

jhipster项目迁移websocket

2019独角兽企业重金招聘Python工程师标准>>> 1、 在项目目录下命令行安装 两个组件 bower install sockjs-client bower install stomp-websocket 2、在index.html 中加入组件js的引用 <script src"bower_components/sockjs-client/dist/sockjs.js">…

html 图片上放置按钮,用CSS在图片上再加一个小按钮

很简单的&#xff0c;嗯&#xff0c;就是要做成这样的&#xff1a;用CSS&#xff0c;当然得用层了&#xff0c;就是在图片上再加一个层&#xff0c;用来放那个按钮&#xff0c;按钮又有两种方式可以放&#xff0c;一种是直接用图片img标签&#xff0c;一种是通过背景图片放上去…

怎么将oracle的sql文件转换成mysql的sql文件

怎么将sql文件导入PowerDesigner中的方法(将oracle的sql文件转换成mysql的sql文件)呢&#xff1f; 怎么将xx.sql文件的数据库结构导入powerdesigner 的方法呢? 现讲下。 工具/原料 PowerDesigner软件&#xff0c;oracle数据库 方法/步骤 将要导入的库的所有表的表结构(不要表数…

ios html图片相对路径,iOS 下加载本地HTML/js/css/image 等路径问题

今天在项目中遇到一个问题&#xff1a;我将H5的文件拖入项目中&#xff0c;在webView上添加H5,运行时发现H5的样式与图片等都没屏幕快照 2016-07-06 11.33.22.png有了。经过多种测试后发现&#xff1a;是路径的问题。在ios项目下添加本地HTML/js/css/image 当拖入项目时有两种选…

el-calendar 怎么设置上一年和下一年_为什么香港硕士一年的含金量那么高?

为什么香港硕士研究生只读一年但含金量更高&#xff1f;近些年来香港留学大热&#xff0c;其中一个原因就是香港的授课式硕士研究生仅需一年就可以拿到学位。对于学生来说&#xff0c;在享受到国际一流的教学资源和工作机会的同时&#xff0c;既节省时间又节约金钱&#xff0c;…

武汉市江岸区2021年高考成绩查询,2021年武汉各区一、二、三批次高中有哪些(名单)...

5月5日至9日是武汉市中考网上报名填报志愿的日子&#xff0c;填报志愿之前应提前了解本区的一批次、二批次和三批次学校的名单&#xff0c;了解其历年录取分数线&#xff0c;并选中最合适最理想的一所学校进行填写&#xff0c;下面我们来看详细名单。武汉各区一、二、三批次高中…

《Java设计模式》之桥接模式

Bridge模式的概念 Bridge 模式是构造型的设计模式之中的一个。Bridge模式基于类的最小设计原则&#xff0c;通过使用封装&#xff0c;聚合以及继承等行为来让不同的类承担不同的责任。它的主要特点是把抽象&#xff08;abstraction&#xff09;与行为实现&#xff08;implement…

cad中tk什么意思_设计中的“Neobject”什么意思?来了解一下

DesignArchitectureInteriorsFashionArtTransportTHE STUFF THAT REFINES YOU破界造物New Language?“Neobject&#xff0c;言如其字&#xff0c;从语义上&#xff0c;前缀 neo- 表示新的&#xff0c;object 则是物体&#xff0c;是客观存在&#xff0c;很中性&#xff0c;作动…

html文段源码,HTML 段落

HTML 段落HTML 可以将文档分割为若干段落。HTML 段落段落是通过 标签定义的。实例这是一个段落这是另一个段落尝试一下 注意&#xff1a;浏览器会自动地在段落的前后添加空行。( 是块级元素)不要忘记结束标签即使忘了使用结束标签&#xff0c;大多数浏览器也会正确地将 HTML 显…

c#如何实现叫号操作_微信预约排队叫号系统操作指南

“微信排队预约"功能是阿拉善盟税务局为进一步优化营商环境&#xff0c;深化“放管服”改革&#xff0c;提高纳税便利度&#xff0c;更好地服务于阿拉善经济社会发展而开发的一项便民措施。通过“微信排队预约”功能&#xff0c;纳税人可以随时随地通过微信获取办税大厅的…

计算机用户越权操作的原因,“三员系统”中常见的越权问题

原标题&#xff1a;“三员系统”中常见的越权问题一、越权访问越权访问(Broken Access Control&#xff0c;简称BAC)是Web应用程序中一种常见的漏洞&#xff0c;由于其存在范围广、危害大&#xff0c;被OWASP列为Web应用十大安全隐患的第二名。1.1越权访问的产生比如&#xff0…

富士施乐2022网络扫描设置_富士施乐(FUJI XEROX)全系列复印机产品介绍

富士施乐(FUJI XEROX)复印机全系列详解富士施乐复印机是中小型办公环境的理想机型。所有的都拥有高效生产力和强大的稳定性&#xff0c;无论您需要亮丽色彩、黑白打印、亦或是足以应对复杂文档工作流的强大功能&#xff0c;总有一款适合您。DocuCentre S2110NDocuCentre S2110N…

JavaMail(四):接收邮件

2019独角兽企业重金招聘Python工程师标准>>> 接收邮件采用POP3协议进行接收&#xff0c;简单的一个接收邮件案例如下 /*** 接收邮件*/ public static void receive() throws Exception { // 准备连接服务器的会话信息 Properties props new Properties(); props.se…

jqgrid本地数据例子_办公系统私有云公有云和本地化部署,你选哪个?

随着互联网和云计算技术的发展&#xff0c;我们常常会听到&#xff1a;私有云、公有云和本地化部署&#xff0c;它们分别代表什么意思&#xff1f;无论是国企、民企还是外企&#xff0c;只要有数据&#xff0c;就要思考&#xff1a;到底将数据储存在哪里&#xff1f;选择轻流进…

计算机基础应用的培养活动记录,小学少年宫计算机兴趣小组活动记录表

小学少年宫计算机兴趣小组活动记录表 小学少年宫计算机兴趣小组活动记录表 活动名称&#xff1a;计算机 指导教师&#xff1a; ⅩⅩ 学生姓名 活动地点 计算机教室 活 动 过 程 活动1&#xff0e;认识计算机 ①师&#xff1a;“请同学们按下方盒子上面像大钮扣一样的按钮&#…

哪个计算机无法做到双屏显示,怎么启用双屏显示设置【图文介绍】

随着生活质量的提升&#xff0c;人们对于便利的要求越来越高&#xff0c;电脑的双屏显示成为现在用户越来越关注的对象之一。比如炒股操作中&#xff0c;人们既要关注大盘的走动趋势&#xff0c;又要关注特定股票的走势&#xff0c;在普通的屏幕上就需要不断地切换页面&#xf…

1.django 开发环境搭建

2019独角兽企业重金招聘Python工程师标准>>> 本教程使用的开发环境 本教程写作时开发环境的系统平台为 Windows 10 &#xff08;64 位&#xff09;&#xff0c;Python 版本为 3.5.2 &#xff08;64 位&#xff09;&#xff0c;Django 版本为 1.10.6。 建议尽可能地与…

改jpg_|我来改第04期|—人物海报设计

【我来改第04期】人物海报文案内容-Ad copyhttps://pan.baidu.com/s/16pz9_rcLXTGZ3xzKFjKN9g 密码: r57t设计要求-Requirement尺寸&#xff1a;1080(高)*650(宽)像素&#xff0c;大小不大于5m设计要求&#xff1a;以目前的蓝色为主要颜色(R:47,G:87,B:130)&#xff0c;画面体…

计算机领域中dns是什么意思,dns错误是什么意思?dns错误要如何解决?

随着网络的普及&#xff0c;电脑已经成为我们生活中必不可少的物品&#xff0c;它可以帮助我们工作和学习以及娱乐。不过电脑在使用的过程中&#xff0c;常常会出现一些问题&#xff0c;小编觉得最常见也最让人心生烦躁的就是输入网址打开之后出现网页打不开&#xff0c;提示dn…