ViewPager
来源:互联网 发布:蓝牙串口软件ymodem 编辑:程序博客网 时间:2024/06/01 08:59
ViewPager是google SDk中自带的一个附加包的一个类,可以用来实现屏幕间的切换
今天要讲的是用ViewPager实现图片的自动轮播,也可以用此控件加载页面,我前面有写过此案例,感兴趣的人可以去看看。好了,开始今天的学习;
Activity中
package com.example.viewpager;//导包import android.app.Activity;import android.app.ListActivity;import android.os.Handler;import android.os.Message;import android.support.v4.view.ViewPager;import android.os.Bundle;import android.widget.RadioGroup;import java.util.ArrayList;import java.util.List;//类public class MainActivity extends Activity {ViewPager viewPager; int i = 0;//主线程更改UI Handler h = new Handler(){ @Override public void handleMessage(Message msg) {//接受发过来的消息,改变数据位置 if(msg.what==0){ i = viewPager.getCurrentItem(); viewPager.setCurrentItem(i+1); } } }; private List<Integer> list; private RadioGroup radio; private Myadper myadper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);//加载布局 setContentView(R.layout.activity_main);//获取资源id radio = (RadioGroup) findViewById(R.id.radio); viewPager = (ViewPager) findViewById(R.id.viewpager);//定义一个集合,把数据放入集合 list = new ArrayList<Integer>(); //图片放入res文件下的mipmap-xxx下 list.add(R.mipmap.a1); list.add(R.mipmap.a2); list.add(R.mipmap.a3); list.add(R.mipmap.a4);//适配器,适配数据 myadper = new Myadper(list,this); viewPager.setAdapter(myadper);//图片自动轮播跟着的小圆点的设置 viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { switch (position% list.size()){ case 0: radio.check(R.id.b1); break; case 1: radio.check(R.id.b2); break; case 2: radio.check(R.id.b3); break; case 3: radio.check(R.id.b4); break; } } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } });//定义个子线程,两秒发送消息,主线程去更改UI new Thread(){ @Override public void run() { try { while(true){ sleep(2000); h.sendEmptyMessage(0); } } catch (InterruptedException e) { e.printStackTrace(); } } }.start(); }}
适配器
package com.example.viewpager;import android.content.Context;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.ViewGroup;import android.widget.ImageViewimport java.util.List;//类继承PagerAdapter,实现四个方法public class Myadper extends PagerAdapter{ //通过构造器传递数据 List<Integer> list; Context context; public Myadper(List<Integer> list, Context context) { this.list = list; this.context = context; }//返回一个最大值 @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; }//创建 @Override public Object instantiateItem(ViewGroup container, int position) { ImageView image = new ImageView(context); image.setImageResource(list.get(position%list.size())); image.setScaleType(ImageView.ScaleType.FIT_XY); container.addView(image); return image; }//销毁 @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); }}
XML文件
<?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:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.viewpager.MainActivity"> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_height="match_parent" android:layout_width="match_parent" /> <RadioGroup android:id="@+id/radio" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:orientation="horizontal"> <RadioButton android:id="@+id/b1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/b2" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/b3" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/b4" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RadioGroup></RelativeLayout>
实现的案例效果
阅读全文
0 0
- Viewpager
- ViewPager
- ViewPager
- ViewPager
- ViewPager
- ViewPager
- viewpager
- ViewPager
- ViewPager
- ViewPager
- Viewpager
- viewpager
- ViewPager
- ViewPager
- ViewPager
- viewpager
- ViewPager
- ViewPager
- MySQL、SqlServer、ORACLE三大数据库常用语句之间的区别整理
- LeetCode 530. Minimum Absolute Difference in BST
- GridControl根据条件改变单元格/行颜色(Dev GridControl 单元格着色)
- 频道管理
- Lengthening Sticks 组合数+容斥原理
- ViewPager
- caffe基础-01数据层的配置
- 字典的基础及字典的使用实例
- HDU6027 Easy Summation 2017中国大学生程序设计竞赛
- UVA
- OpenGL超级宝典visual studio 2013开发环境配置,GLTools
- 1.输入子系统
- opencv1-基础库
- [HiHoCoder]#1015 : 马拉车