public class MainActivity extends Activity {

    private ViewPager viewPager;
private List<View> Views;
private ImageView[] imgs;
private ViewGroup main,group;
private ImageView img;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState); Views=new ArrayList<View>();
main=(ViewGroup) View.inflate(this,R.layout.main, null); viewPager=(ViewPager) main.findViewById(R.id.viewpager);
group=(ViewGroup) main.findViewById(R.id.viewgroup); View view1=View.inflate(this, R.layout.item0, null);
View view2=View.inflate(this, R.layout.item1, null);
View view3=View.inflate(this, R.layout.item2, null);
View view4=View.inflate(this, R.layout.item4, null); Views.add(view4);
Views.add(view3);
Views.add(view2);
Views.add(view1); imgs=new ImageView[Views.size()]; for(int i=0;i<Views.size();i++)
{
img=new ImageView(this);
img.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
img.setPadding(10, 10, 10, 10);
if(i==0)
{
img.setImageResource(R.drawable.white);
}else
{
img.setImageResource(R.drawable.black);
}
group.addView(img);
imgs[i]=img;
} setContentView(main);
//添加数据
viewPager.setAdapter(new MyAdapter());
//监听滑动效果
viewPager.setOnPageChangeListener(new OnPageChangeListener()
{
public void onPageSelected(int arg0)
{
for(int i=0;i<Views.size();i++)
{
if(arg0!=i)
{
imgs[i].setImageResource(R.drawable.black);
}else
{
imgs[i].setImageResource(R.drawable.white);
}
} } @Override
public void onPageScrolled(int arg0, float arg1, int arg2){ }
public void onPageScrollStateChanged(int arg0){}
});
} class MyAdapter extends PagerAdapter
{ @Override
public int getCount() {
return Views.size();
} @Override
public boolean isViewFromObject(View arg0, Object arg1)
{
return arg0==arg1;
} @Override
public int getItemPosition(Object object)
{
return super.getItemPosition(object);
} public void destroyItem(View container, int position, Object object) {
((ViewPager) container).removeView(Views.get(position)); } @Override
public Object instantiateItem(View container, int position) {
((ViewPager) container).addView(Views.get(position));
return Views.get(position);
} } }

xml布局文件

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" > <android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="fill_parent"
android:layout_height="wrap_content" /> <RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" > <LinearLayout
android:id="@+id/viewgroup"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="30dp"
android:gravity="center_horizontal"
android:orientation="horizontal" >
</LinearLayout>
</RelativeLayout> </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. Android批量图片载入经典系列——使用LruCache、AsyncTask缓存并异步载入图片

    一.问题描写叙述 使用LruCache.AsyncTask实现批量图片的载入并达到下列技术要求 1.从缓存中读取图片,若不在缓存中,则开启异步线程(AsyncTask)载入图片,并放入缓存中 2.及时 ...

  2. [AngularJS] Services, Factories, and Providers -- value & Providers

    Creating a Value Object Sometimes you have javascript object defined: //value object var droidValue ...

  3. [AngularJS] Services, Factories, and Providers -- Service vs Factory

    Creating a Service: Before actual create an angular service, first create a constructor in Javascrip ...

  4. [Javascript] Array methods in depth - slice

    Array slice creates a shallow copy of an array. In this lesson we cover, in detail, exactly what a ' ...

  5. php编译错误Note that the MySQL client library is not bundled anymore或者cannot find mysql header file

    rpm -ivh MySQL-devel-community-5.1.57-1.sles10.x86_64.rpm export PATH=/usr/local/services/libxml2-2. ...

  6. JDK动态代理实现原理--转载

    之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白.比如说:InvocationHandler的invoke方法是由谁来调用的,代理对象是怎么生成的,直到前几个星期才把这些问题全部搞明白了.  ...

  7. [转] GDB 下 watch的使用

    这里大概说下gdb调试程序时,watch的使用.至于原理尚不清楚,以后再做补充,还请见谅. watch通常需要和break,run,continue联合使用. 下面举例说明: 代码如下: #inclu ...

  8. 配置VSFTP服务器

    一.Linux FTP服务器分类:  <1>wu-ftp  <2>proftp=profession ftp  <3>vsftp=very security ftp ...

  9. Apache调优

    1.调整文件描述符大小,默认Linux系统的文件描述符是1024,对于squid等一些服务来说                在高负载的情况下这些文件描述符是远远不够的,所以在部署该类服务器时修改文件 ...

  10. activiti总结2

    根据流程号查询失败原因. activiti重试机制.齿轮节点.邮件节点.任务节点.ACT_HI_ACTINST历史表.ACT_RU_EXECUTION运行表.看图. 在Eclipse里面自己写个测试方 ...