ViewPager无限轮播
来源:互联网 发布:360度全景图制作 js 编辑:程序博客网 时间:2024/05/17 03:01
package com.example.viewpagerdian;import android.content.Intent;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.Button;import android.widget.ImageView;public class MainActivity extends AppCompatActivity { private ViewPager vp; //存入图片(展示三张图片无限循环(下标为1,2,3(0,4为重复))) private int[] icon = {R.mipmap.s,R.mipmap.j,R.mipmap.k,R.mipmap.s,R.mipmap.j}; //初始化一个变量 int i; private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);//获取控件的方法 initview();//设置适配器(可写适配器类) vp.setAdapter(new PagerAdapter() { @Override public int getCount() { return 5; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public Object instantiateItem(ViewGroup container, int position) { //加载布局 View view = View.inflate(MainActivity.this, R.layout.icon, null); //获取控件 ImageView iv = view.findViewById(R.id.iv_icon); //设置图片 iv.setImageResource(icon[position]); //添加到视图 container.addView(view); return view; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } }); //初始化展示图片(开始展示的图片) vp.setCurrentItem(1); //无限轮滑 vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { //查找当前展示图片下标 int c = vp.getCurrentItem(); //判断下标(跳转按钮的隐显)(布局文件按钮是 android:visibility="invisible") // else必须写 if(c == 3){ btn.setVisibility(View.VISIBLE); }else{ btn.setVisibility(View.INVISIBLE); } //判断下标 if(c == 0){ //下标为0表示展示最后一张图片(因为实际就展示三张(头尾多加了一张)) i = 3; }else if(c == 4){ i = 1; }else{ i = position; } } @Override public void onPageScrollStateChanged(int state) {//用户在以触屏方式滚动屏幕并且手指仍然还在屏幕上时 SCROLL_STATE_TOUCH_SCROLL//用户由于之前划动屏幕并抬起手指,屏幕产生惯性滑动时 SCROLL_STATE_FLING//判断当屏幕停止滚动时 SCROLL_STATE_IDLE if(state == vp.SCROLL_STATE_IDLE){ vp.setCurrentItem(i,false); } } }); }//加载控件的方法 private void initview() { vp = (ViewPager) findViewById(R.id.viewpager); btn = (Button) findViewById(R.id.btn); } //按钮点击跳转 public void click(View view){ startActivity(new Intent(MainActivity.this,HomeActivity.class)); }}
阅读全文
0 0
- viewpager无限轮播
- Viewpager无限轮播
- Viewpager无限轮播
- ViewPager无限轮播
- ViewPager无限轮播
- ViewPager无限轮播
- VieWPager无限轮播
- viewpager无限轮播
- viewpager无限轮播
- viewpager无限轮播
- viewpager 无限轮播
- ViewPager无限轮播
- ViewPager无限轮播
- ViewPager 无限轮播
- ViewPager无限轮播
- ViewPager无限轮播
- viewpager 无限轮播
- ViewPager无限轮播
- HBASE
- maven打包springboot项目跳过test文件夹
- 良好编程习惯
- 【dp】 HDU
- 面试总结(二)
- ViewPager无限轮播
- Remove Duplicates from Sorted List II leetcode java
- POJ
- JS基础语法(一)
- SRS学习笔记9-rtmp监听线程创建推流线程的过程分析-gdb调试
- LINUX配置过程记录
- dfs序
- redmine-java-api的使用方法简介
- 面试总结(三)