1. public class MainActivity extends Activity {
  2.  
  3. private ViewPager viewPager;
  4. private List<View> Views;
  5. private ImageView[] imgs;
  6. private ViewGroup main,group;
  7. private ImageView img;
  8. protected void onCreate(Bundle savedInstanceState)
  9. {
  10. super.onCreate(savedInstanceState);
  11.  
  12. Views=new ArrayList<View>();
  13. main=(ViewGroup) View.inflate(this,R.layout.main, null);
  14.  
  15. viewPager=(ViewPager) main.findViewById(R.id.viewpager);
  16. group=(ViewGroup) main.findViewById(R.id.viewgroup);
  17.  
  18. View view1=View.inflate(this, R.layout.item0, null);
  19. View view2=View.inflate(this, R.layout.item1, null);
  20. View view3=View.inflate(this, R.layout.item2, null);
  21. View view4=View.inflate(this, R.layout.item4, null);
  22.  
  23. Views.add(view4);
  24. Views.add(view3);
  25. Views.add(view2);
  26. Views.add(view1);
  27.  
  28. imgs=new ImageView[Views.size()];
  29.  
  30. for(int i=0;i<Views.size();i++)
  31. {
  32. img=new ImageView(this);
  33. img.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
  34. img.setPadding(10, 10, 10, 10);
  35. if(i==0)
  36. {
  37. img.setImageResource(R.drawable.white);
  38. }else
  39. {
  40. img.setImageResource(R.drawable.black);
  41. }
  42. group.addView(img);
  43. imgs[i]=img;
  44. }
  45.  
  46. setContentView(main);
  47. //添加数据
  48. viewPager.setAdapter(new MyAdapter());
  49. //监听滑动效果
  50. viewPager.setOnPageChangeListener(new OnPageChangeListener()
  51. {
  52. public void onPageSelected(int arg0)
  53. {
  54. for(int i=0;i<Views.size();i++)
  55. {
  56. if(arg0!=i)
  57. {
  58. imgs[i].setImageResource(R.drawable.black);
  59. }else
  60. {
  61. imgs[i].setImageResource(R.drawable.white);
  62. }
  63. }
  64.  
  65. }
  66.  
  67. @Override
  68. public void onPageScrolled(int arg0, float arg1, int arg2){ }
  69. public void onPageScrollStateChanged(int arg0){}
  70. });
  71. }
  72.  
  73. class MyAdapter extends PagerAdapter
  74. {
  75.  
  76. @Override
  77. public int getCount() {
  78. return Views.size();
  79. }
  80.  
  81. @Override
  82. public boolean isViewFromObject(View arg0, Object arg1)
  83. {
  84. return arg0==arg1;
  85. }
  86.  
  87. @Override
  88. public int getItemPosition(Object object)
  89. {
  90. return super.getItemPosition(object);
  91. }
  92.  
  93. public void destroyItem(View container, int position, Object object) {
  94. ((ViewPager) container).removeView(Views.get(position));
  95.  
  96. }
  97.  
  98. @Override
  99. public Object instantiateItem(View container, int position) {
  100. ((ViewPager) container).addView(Views.get(position));
  101. return Views.get(position);
  102. }
  103.  
  104. }
  105.  
  106. }

xml布局文件

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical" >
  6.  
  7. <android.support.v4.view.ViewPager
  8. android:id="@+id/viewpager"
  9. android:layout_width="fill_parent"
  10. android:layout_height="wrap_content" />
  11.  
  12. <RelativeLayout
  13. android:layout_width="fill_parent"
  14. android:layout_height="wrap_content"
  15. android:orientation="vertical" >
  16.  
  17. <LinearLayout
  18. android:id="@+id/viewgroup"
  19. android:layout_width="fill_parent"
  20. android:layout_height="wrap_content"
  21. android:layout_alignParentBottom="true"
  22. android:layout_marginBottom="30dp"
  23. android:gravity="center_horizontal"
  24. android:orientation="horizontal" >
  25. </LinearLayout>
  26. </RelativeLayout>
  27.  
  28. </FrameLayout>

最后一点是,记得引入android-support-v4.jar包

运行效果:

Android ViewPager实现软件的第一次加载的滑动效果的更多相关文章

  1. Android中ViewPager+Fragment取消(禁止)预加载延迟加载(懒加载)问题解决方案

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53205878本文出自[DylanAndroid的博客] Android中Vie ...

  2. Android之Socket通信、List加载更多、Spinner下拉列表

    Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户端向服务器发送请求后,服务 ...

  3. Android系统下的动态Dex加载

    1 问题在Android系统中,一个App的所有代码都在一个Dex文件里面.Dex是一个类似Jar的存储了多有Java编译字节码的归档文件.因为Android系统使用Dalvik虚拟机,所以需要把使用 ...

  4. Android系统下的动态Dex加载与app速度优化

    1 问题 在Android系统中,一个App的所有代码都在一个Dex文件里面.Dex是一个类似Jar的存储了多有Java编译字节码的归档文件.因为Android系统使用Dalvik虚拟机,所以需要把 ...

  5. Android Scrollview嵌套下listView动态加载数据,解决onScrollChanged执行多次数据重复问题

    这一篇博客和上一篇讲的都是listView的动态加载,但有所不同的是,本篇的listView是嵌套在ScrollView下的,有时候在一个Activity中可能分为好几个模块,由于展示的需要(手机屏幕 ...

  6. 携程Android App插件化和动态加载实践

    携程Android App的插件化和动态加载框架已上线半年,经历了初期的探索和持续的打磨优化,新框架和工程配置经受住了生产实践的考验.本文将详细介绍Android平台插件式开发和动态加载技术的原理和实 ...

  7. RoundedImageView使用吐槽心得(RoundedImageView与Glide加载图片,第一次加载无法圆角问题)

    最近使用的时候发现一个问题, RoundedImageView与Glide搭配使用的时候,第一次加载图片(内存中没有),后图片无法圆角,后来尝试各种改,最后想到了一个办法,就是让Glide加载图片的 ...

  8. Ionic进行PC端Web开发时通过脚本压缩提高第一次加载效率

    1. 问题 1.1. 问题上下文描述: 基于Ionic进行PC端的Web应用开发: 使用Tomcat作为最终服务发布容器. 1.2. 问题描述: 编译后main.js的大小为4-6MByte.(集成第 ...

  9. WebView加载页面,带链接的Img在页面第一次加载时无法显示的问题

    在做一个App的过程中,用到WebView来显示几个页面.在这个过程中发现有些页面的显示出现了异常:页面中的Img链接在页面第一次加载时无法正常显示图片,退出页面再次进入后可正常显示.开始以为是Web ...

随机推荐

  1. Eclipse ADT的Custom debug keystore所需证书规格

    最近开始研究Google Play的In-app Billing IAB内置计费API,发现一个比较烦人的问题就是测试时应用必须经过正式签名,而默认Eclipse ADT调试运行使用的是临时生成的De ...

  2. db2 存储过程迁移方法

    大家在迁移数据库时,存储过程一般也要迁移过去,但一般有两个问题: 1. 非常多存储过程有先后关系(存储过程调用存储过程),假设存储过程数量少,还能手动操作.假设量大,那真是要疯了. 2. 存储过程过大 ...

  3. [Redux] Avoiding Object Mutations with Object.assign() and ...spread

    Learn how to use Object.assign() and the spread operator proposed for ES7 to avoid mutating objects. ...

  4. IOS后台执行机制 与 动作

    当用户按下"Home"键或者系统启动另外一个应用时,前台foreground应用首先切换到Inactive状态,然后切换到Background状态.此转换将会导致先后调用应用代理的 ...

  5. $.each 和$(selector).each()的差别

    Home » jQuery » $.each() $.each() Posted on 2012 年 3 月 15 日 in jQuery, jQuery函数 | by Jason | 译自官方手冊: ...

  6. Java基础知识强化之集合框架笔记02:集合的继承体系图解

    1. 集合的继承体系图解:

  7. Python迭代--笔记

    <python3 程序开发指南> 迭代子.迭代操作 迭代子是一个对象,该对象可提供_next_()方法,该方法依次返回每个相继的数据项,并在没有数据项时产生StopIteration()异 ...

  8. nyoj 76

    #include <iostream> using namespace std; int main() { int i,t,n; int a[101]; cin>>t; whi ...

  9. myeclipse插件安装

    MyEclipse插件安装 安装1: HELP->MuEclipse Configuration Center.切换到SoftWare选项卡. 点击 add site 打开对话框,在对话框中na ...

  10. 托盘图标、气泡以及任务栏崩溃后的自动添加——Shell_NotifyIcon

    托盘图标使用函数 Shell_NotifyIcon 创建.修改和删除,参数主要使用 NOTIFYICONDATA 结构. 任务栏启动时会给所有顶层窗口发送 TaskbarCreated 消息,由于不同 ...