ViewPager使用
来源:互联网 发布:use it or lose it 编辑:程序博客网 时间:2024/05/22 04:56
public class MainActivity extends Activity {private ViewPager viewPager;private LinearLayout pointGroup;private TextView iamgeDesc;// 图片资源IDprivate final int[] imageIds = { R.drawable.a, R.drawable.b, R.drawable.c,R.drawable.d, R.drawable.e }; //图片标题集合private final String[] imageDescriptions = {"巩俐不低俗,我就不能低俗","扑树又回来啦!再唱经典老歌引万人大合唱","揭秘北京电影如何升级","乐视网TV版大派送","热血屌丝的反杀"};private ArrayList<ImageView> imageList;/** * 上一个页面的位置 */protected int lastPosition;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);viewPager = (ViewPager) findViewById(R.id.viewpager);pointGroup = (LinearLayout) findViewById(R.id.point_group);iamgeDesc = (TextView) findViewById(R.id.image_desc);iamgeDesc.setText(imageDescriptions[0]);imageList = new ArrayList<ImageView>();for (int i = 0; i <imageIds.length; i++) {//初始化图片资源ImageView image = new ImageView(this);image.setBackgroundResource(imageIds[i]);imageList.add(image);//添加指示点ImageView point =new ImageView(this);LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);params.rightMargin = 20;point.setLayoutParams(params);point.setBackgroundResource(R.drawable.point_bg);if(i==0){point.setEnabled(true);}else{point.setEnabled(false);}pointGroup.addView(point);} viewPager.setAdapter(new MyPagerAdapter()); // viewPager.setCurrentItem(Integer.MAX_VALUE/2 - (Integer.MAX_VALUE/2%imageList.size())) ; viewPager.setOnPageChangeListener(new OnPageChangeListener() {@Override/** * 页面切换后调用 * position 新的页面位置 */public void onPageSelected(int position) {position = position%imageList.size();//设置文字描述内容iamgeDesc.setText(imageDescriptions[position]);//改变指示点的状态//把当前点enbale 为true pointGroup.getChildAt(position).setEnabled(true);//把上一个点设为falsepointGroup.getChildAt(lastPosition).setEnabled(false);lastPosition = position;}@Override/** * 页面正在滑动的时候,回调 */public void onPageScrolled(int position, float positionOffset,int positionOffsetPixels) {}@Override/** * 当页面状态发生变化的时候,回调 */public void onPageScrollStateChanged(int state) {}}); /* * 自动循环: * 1、定时器:Timer * 2、开子线程 while true 循环 * 3、ColckManager * 4、 用handler 发送延时信息,实现循环 */ isRunning = true;// handler.sendEmptyMessageDelayed(0, 2000);}/** * 判断是否自动滚动 */private boolean isRunning = false;private Handler handler = new Handler(){public void handleMessage(android.os.Message msg) {//让viewPager 滑动到下一页viewPager.setCurrentItem(viewPager.getCurrentItem()+1);if(isRunning){handler.sendEmptyMessageDelayed(0, 2000);}};};protected void onDestroy() {isRunning = false;};private class MyPagerAdapter extends PagerAdapter {@Override/** * 获得页面的总数 */public int getCount() {return Integer.MAX_VALUE;}@Override/** * 获得相应位置上的view * container view的容器,其实就是viewpager自身 * position 相应的位置 */public Object instantiateItem(ViewGroup container, int position) {System.out.println("instantiateItem ::"+position);// 给 container 添加一个viewcontainer.addView(imageList.get(position%imageList.size()));//返回一个和该view相对的objectreturn imageList.get(position%imageList.size());}@Override/** * 判断 view和object的对应关系 */public boolean isViewFromObject(View view, Object object) {if(view == object){return true;}else{return false;}}@Override/** * 销毁对应位置上的object */public void destroyItem(ViewGroup container, int position, Object object) {System.out.println("destroyItem ::"+position);container.removeView((View) object);object = null;}}}
0 0
- viewpager使用
- ViewPager使用
- ViewPager使用
- ViewPager使用
- viewpager使用
- ViewPager使用
- ViewPager中ViewPager的使用
- (ViewPager)Android ViewPager使用详解
- 使用ViewPager.PageTransformer自定义ViewPager
- ViewPager 的使用
- viewpager的使用
- ViewPager的使用
- Android ViewPager使用详解
- Android ViewPager 使用详解
- ViewPager的使用
- Android ViewPager使用详解
- Android ViewPager使用详解
- Android ViewPager使用详解
- ios 内存管理个人一些见解
- SLF4j笔记
- 【如果还有明天】我想我是想你了
- Android ActionBar 一步一步分析
- poj 2391 二分+多源最短路+最大流
- ViewPager使用
- python的陷阱
- vs2013 include自己编写的.h .c文件方法
- 结构体指针
- IOS-获取Model(设备型号)、Version(设备版本号)、app(程序版本号)
- 腾讯2016校招试题----------格雷码的实现
- 结构体数组
- ScrollView嵌套ListView问题
- Biometric-----Fingerprint Recognition