ViewPager循环显示
好久没有写博客了,今天加一个ViewPager页面的循环显示,添加了一个删除页面的小按钮:
MainActivity.java
package com.yt.viewpagerlooper; import java.util.ArrayList;
import java.util.List; import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.app.Activity; public class MainActivity extends Activity { String[] strs = new String[] { "1", "2", "3", "4", "5", "6"};
int[] resIds = new int[]{R.drawable.step1,R.drawable.step2,R.drawable.step3,R.drawable.step4,R.drawable.step5,R.drawable.step6};
List<String> titles = new ArrayList<String>();
List<Integer> resIDs = new ArrayList<Integer>();
private ViewPager viewPager;
private int curPage = 0; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
for(int i=0; i<strs.length; i++){
resIDs.add(resIds[i]);
titles.add(strs[i]);
} viewPager = (ViewPager) findViewById(R.id.viewPager);
MyPagerAdapter adapter = new MyPagerAdapter();
viewPager.setAdapter(adapter);
viewPager.setOnPageChangeListener(new MyPageChage());
Button btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
titles.remove(curPage);
resIDs.remove(curPage);
System.out.println("删除:" + curPage);
viewPager.getAdapter().notifyDataSetChanged();
}
});
} @Override
public boolean onTouchEvent(MotionEvent event) {
System.out.println(event.getX() + " Activity");
return super.onTouchEvent(event);
} class MyPageChage implements OnPageChangeListener { @Override
public void onPageScrollStateChanged(int arg0) { } @Override
public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override
public void onPageSelected(int position) {
curPage = position % titles.size();
System.out.println(curPage);
} } private boolean isFirst = true; class MyPagerAdapter extends PagerAdapter { @Override
public int getCount() {
return Integer.MAX_VALUE;
} @Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
} @Override
public Object instantiateItem(ViewGroup container, int position) {
View view = View.inflate(MainActivity.this, R.layout.page_item, null);
TextView tv = (TextView) view.findViewById(R.id.title);
ImageView iv = (ImageView) view.findViewById(R.id.iv);
tv.setText(titles.get(position % titles.size()));
iv.setImageResource(resIDs.get(position % titles.size()));
viewPager.addView(view);
return view;
} @Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((View) object);
} @Override
public int getItemPosition(Object object) {
return PagerAdapter.POSITION_NONE;
} } }
布局文件:activity_main.xml
<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"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" /> <android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffff00" /> <Button
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="删除一个View" /> </RelativeLayout>
ViewPager中页面的布局文件:page_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" > <TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#66ffffff" /> <ImageView
android:id="@+id/iv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/title"
android:scaleType="fitXY"
android:src="@drawable/ic_launcher" /> </RelativeLayout>
源码下载地址:http://download.csdn.net/detail/yuan936845015/6573023
ViewPager循环显示的更多相关文章
- js 控制Div循环显示 非插件版
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- wpf image控件循环显示图片 以达到动画效果 问题及解决方案
1>最初方案: 用wpf的image控件循环显示图片,达到动画效果,其实就是在后台代码动态改变Image.Source的值,关键代码: ; i < ; i++)//六百张图片 { Bitm ...
- WinForm LED循环显示信息,使用定时器Threading.Timer
原文:WinForm LED循环显示信息,使用定时器Threading.Timer 这里用一个示例来演示timer如何使用.示例:LED屏幕显示描述:这个示例其实很简单,LED屏幕上显示3个信息: ...
- QT中循环显示图片和简单的显示图片
请关注我的github https://github.com/linqiaozhou 以下实例代码不久后将会上传到我的github 这是我最近一个项目中的部分代码 //以下是简单的在QT中显示图片的代 ...
- Asp.Net 遍历 循环 显示所有COOKIS,SESSION,Applocation
在C#中循环显示SESSIOn: Response.Write("<br>Session的所有值:<br>"); foreach (string obj i ...
- WPF 循环显示列表
原文:WPF 循环显示列表 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/SANYUNI/article/details/79423707 项目需要 ...
- Android ScrollView嵌套ViewPager,嵌套的ViewPager无法显示
记录:ScrollView嵌套ViewPager,嵌套的ViewPager无法显示 项目中所需要布局:LinearLayout中包含(orientation="vertical") ...
- viewpager循环滚动和自动轮播的问题
ViewPager是一个常用的android组件,不过通常我们使用ViewPager的时候不能实现左右无限循环滑动,在滑到边界的时候会看到一个不能翻页的动画,可能影响用户体验.此外,某些区域性的Vie ...
- ViewPager循环广告位的实现
1.如何实现循环播放 2.如何实现自动循环 如何实现循环播放 现在网上实现循环播放都是在adapter的getCount()方法返回一个较大的值并且instantiateItem(ViewGroup ...
随机推荐
- Hello mybatis
idea玩mybatis,终于搞出个hello mybatis.记录下过程,备忘. 1.person表 CREATE TABLE `person` ( `id` ) NOT NULL AUTO_INC ...
- andriod前端传来经度 纬度 坐标 来查询数据库坐标周围500M内的类数据
@Transient public static List<Article> queryByPosition(PositionInfo pinfo){ //System.out.print ...
- 6.openssl rsautl和openssl pkeyutl
rsautl是rsa的工具,相当于rsa.dgst的部分功能集合.可用于签名.验证.加密和解密文件.非对称密钥的密钥是随机生成的,因此不需要也无法指定salt参与加密. pkeyutl是非对称加密的通 ...
- MySQL连接线程kill利器之pt-kill
如何每10秒检查一次,杀死指定用户超过100秒的查询? pt-kill \ --no-version-check \ --host 127.0.0.1 --port 3306 --user 'xxxx ...
- TCP协议疑难杂症全景解析
说明: 1).本文以TCP的发展历程解析容易引起混淆,误会的方方面面2).本文不会贴大量的源码,大多数是以文字形式描述,我相信文字看起来是要比代码更轻松的3).针对对象:对TCP已经有了全面了解的人. ...
- javascript对象引用与赋值
avascript对象引用与赋值 <script type="text/javascript"> //例子一: 引用 var myArrayRef = new Arra ...
- zepto的touch模块解决click延迟300ms问题以及点透问题的详解
大家都知道移动端的click事件会延迟300ms触发,这时大家可以使用zepto的touch模块,里面定义了一个tap事件,通过绑定tap事件,可以实现点击立即触发的功能. 那么,它的tap事件是怎么 ...
- [专题论文阅读]【分布式DNN训练系统】 FireCaffe
FireCaffe Forrest N. Iandola FireCaffe: near-linear acceleration of deep neural network training on ...
- 写了cookie阻止通过输入地址直接访问下一个html,但是直接输入地址访问时,会闪一下下一个页面,怎么回事啊????、
描述:做了两个页面login.html index.html 在index的body加了onload事件,调用一个js,js中有cookie的判断,防止没有登录就打开index.html,如果没 ...
- LeetCode Bulb Switcher 319
变换灯泡颜色 There are n bulbs that are initially off. You first turn on all the bulbs. Then, you turn off ...