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 ...
随机推荐
- ios将一个项目完全导为另一个项目(tool)
--前言:有时开始一个新项目,但新项目跟已做完的一个项目很类似,基本可以在原有项目上更改.这个时候,可以new一个新project,在将相应的代码文件copy到新的project,配置工程各参数,库等 ...
- mysql去掉字段字符中间空格
mysql有什么办法批量去掉某个字段字符中的空格?不仅是字符串前后的空格,还包含字符串中间的空格,答案是 replace,使用mysql自带的 replace 函数,另外还有个 trim 函数. ...
- [Angular 2] Router basic and Router Params
When we define router in Angualr 2, we use @RouteConcfig() When we want to display component, we use ...
- VB.NET 数组的定义 动态使用 多维数组
我们都知道在全部程序设计语言中数组都是一个非常重要的概念,数组的作用是同意程序猿用同一个名称来引用多个变量,因此採用数组索引来区分这些变量.非常多情况下利用数组索引来设置一个循环,这样就能够高效地处理 ...
- 修改MySQL引擎
1. 显示MySQL支持的引擎:show engines;
- PYCURL ERROR 22 - "The requested URL returned error: 403 Forbidden"
RHEL6.5创建本地Yum源后,发现不可用,报错如下: [root@namenode1 html]# yum install gcc Loaded plugins: product-id, refr ...
- Windows Native API
http://en.wikipedia.org/wiki/Native_API Windows 的原生 API 函数通常在系统启动时(这里其他 Windows 组件还不可用).kernel32.dll ...
- Jason 分享吴霁虹教授的产品模型
产品的出现都是为了解决市场上存在的某一个”疼点“或一系列的”疼点“而出现. 疼点:是一个亟需待解决的问题,对应有相应的市场,会寻找相应的解决方案.比如:用户的小孩——>因为缺钱,所以担心小孩无法 ...
- 非UI线程和UI线程通信
public void onClick(View v) { new Thread(new Runnable() { public void run() { final Bitmap bitmap = ...
- JavaWeb学习笔记之Servlet(二)
1. GenericServlet 抽象类: 1). 是一个 Serlvet. 是 Servlet 接口和 ServletConfig 接口的实现类. 但是一个抽象类. 其中的 service 方法 ...