Android ViewPager实现软件的第一次加载的滑动效果
- 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实现软件的第一次加载的滑动效果的更多相关文章
- Android中ViewPager+Fragment取消(禁止)预加载延迟加载(懒加载)问题解决方案
转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53205878本文出自[DylanAndroid的博客] Android中Vie ...
- Android之Socket通信、List加载更多、Spinner下拉列表
Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户端向服务器发送请求后,服务 ...
- Android系统下的动态Dex加载
1 问题在Android系统中,一个App的所有代码都在一个Dex文件里面.Dex是一个类似Jar的存储了多有Java编译字节码的归档文件.因为Android系统使用Dalvik虚拟机,所以需要把使用 ...
- Android系统下的动态Dex加载与app速度优化
1 问题 在Android系统中,一个App的所有代码都在一个Dex文件里面.Dex是一个类似Jar的存储了多有Java编译字节码的归档文件.因为Android系统使用Dalvik虚拟机,所以需要把 ...
- Android Scrollview嵌套下listView动态加载数据,解决onScrollChanged执行多次数据重复问题
这一篇博客和上一篇讲的都是listView的动态加载,但有所不同的是,本篇的listView是嵌套在ScrollView下的,有时候在一个Activity中可能分为好几个模块,由于展示的需要(手机屏幕 ...
- 携程Android App插件化和动态加载实践
携程Android App的插件化和动态加载框架已上线半年,经历了初期的探索和持续的打磨优化,新框架和工程配置经受住了生产实践的考验.本文将详细介绍Android平台插件式开发和动态加载技术的原理和实 ...
- RoundedImageView使用吐槽心得(RoundedImageView与Glide加载图片,第一次加载无法圆角问题)
最近使用的时候发现一个问题, RoundedImageView与Glide搭配使用的时候,第一次加载图片(内存中没有),后图片无法圆角,后来尝试各种改,最后想到了一个办法,就是让Glide加载图片的 ...
- Ionic进行PC端Web开发时通过脚本压缩提高第一次加载效率
1. 问题 1.1. 问题上下文描述: 基于Ionic进行PC端的Web应用开发: 使用Tomcat作为最终服务发布容器. 1.2. 问题描述: 编译后main.js的大小为4-6MByte.(集成第 ...
- WebView加载页面,带链接的Img在页面第一次加载时无法显示的问题
在做一个App的过程中,用到WebView来显示几个页面.在这个过程中发现有些页面的显示出现了异常:页面中的Img链接在页面第一次加载时无法正常显示图片,退出页面再次进入后可正常显示.开始以为是Web ...
随机推荐
- Eclipse ADT的Custom debug keystore所需证书规格
最近开始研究Google Play的In-app Billing IAB内置计费API,发现一个比较烦人的问题就是测试时应用必须经过正式签名,而默认Eclipse ADT调试运行使用的是临时生成的De ...
- db2 存储过程迁移方法
大家在迁移数据库时,存储过程一般也要迁移过去,但一般有两个问题: 1. 非常多存储过程有先后关系(存储过程调用存储过程),假设存储过程数量少,还能手动操作.假设量大,那真是要疯了. 2. 存储过程过大 ...
- [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. ...
- IOS后台执行机制 与 动作
当用户按下"Home"键或者系统启动另外一个应用时,前台foreground应用首先切换到Inactive状态,然后切换到Background状态.此转换将会导致先后调用应用代理的 ...
- $.each 和$(selector).each()的差别
Home » jQuery » $.each() $.each() Posted on 2012 年 3 月 15 日 in jQuery, jQuery函数 | by Jason | 译自官方手冊: ...
- Java基础知识强化之集合框架笔记02:集合的继承体系图解
1. 集合的继承体系图解:
- Python迭代--笔记
<python3 程序开发指南> 迭代子.迭代操作 迭代子是一个对象,该对象可提供_next_()方法,该方法依次返回每个相继的数据项,并在没有数据项时产生StopIteration()异 ...
- nyoj 76
#include <iostream> using namespace std; int main() { int i,t,n; int a[101]; cin>>t; whi ...
- myeclipse插件安装
MyEclipse插件安装 安装1: HELP->MuEclipse Configuration Center.切换到SoftWare选项卡. 点击 add site 打开对话框,在对话框中na ...
- 托盘图标、气泡以及任务栏崩溃后的自动添加——Shell_NotifyIcon
托盘图标使用函数 Shell_NotifyIcon 创建.修改和删除,参数主要使用 NOTIFYICONDATA 结构. 任务栏启动时会给所有顶层窗口发送 TaskbarCreated 消息,由于不同 ...