您的位置:首页 > 其它

欢迎界面,自定义viewpager实现

2014-06-08 19:06 295 查看
三个布局都是以蓝色为背景,背景上加imageview控件,并添加图片,最后再设置图片的动画效果,用viewpager来切换每个布局

代码:

这里是主Activity

package com.example.android_unit10_7;

import java.util.ArrayList;

import java.util.List;

import android.os.Bundle;

import android.app.Activity;

import android.support.v4.view.ViewPager;

import android.support.v4.view.ViewPager.OnPageChangeListener;

import android.view.Menu;

import android.view.View;

import android.view.Window;

import android.view.WindowManager;

import android.view.animation.Animation;

import android.view.animation.AnimationUtils;

import android.widget.ImageView;

public class MainActivity extends Activity {

private ViewPager pager;

private List<View> list;

private View view;

private ImageView imageView;

private Animation animation;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE); //去掉标题栏

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN); //去掉任务栏

pager = new ViewPager(this); //初始化viewpager

setContentView(pager); //加载进来viewpager

list = new ArrayList<View>(); //初始化list,,把三个布局加进viewpager

list.add(getLayoutInflater().inflate(R.layout.first, null));

list.add(getLayoutInflater().inflate(R.layout.second, null));

list.add(getLayoutInflater().inflate(R.layout.third, null));

MyAdapter adapter = new MyAdapter(getApplicationContext(), list); //初始化自定义的adapter

pager.setAdapter(adapter);

view = list.get(0);

imageView = (ImageView) view.findViewById(R.id.f_iv1);

animation = AnimationUtils.loadAnimation(this,R.anim.fengche); //设置动画效果,在xml文件设置动画

imageView.startAnimation(animation); // 开始动画

//因为只定义一个imageView,所以每次找一次控件初始化一次imageView,注意顺序

imageView = (ImageView) view.findViewById(R.id.f_iv2);

animation = AnimationUtils.loadAnimation(this, R.anim.f_iv2); //设置动画效果

imageView.startAnimation(animation); //// 开始动画

//监听滑动页面

pager.setOnPageChangeListener(new OnPageChangeListener() {

@Override

public void onPageSelected(int arg0) { //对选择的布局监听

// TODO Auto-generated method stub

view = list.get(arg0); //选择界面布局,为了拿到布局内的控件

switch (arg0) {

case 0:

//风车效果

imageView = (ImageView) view.findViewById(R.id.f_iv1);

animation = AnimationUtils.loadAnimation(

getApplicationContext(), R.anim.fengche);

imageView.startAnimation(animation);

//文字效果

imageView = (ImageView) view.findViewById(R.id.f_iv2);

animation = AnimationUtils.loadAnimation(

getApplicationContext(), R.anim.f_iv2);

imageView.startAnimation(animation);

break;

case 1:

//以下來年各個布局跟上面的一樣也可以隨意設置

imageView = (ImageView) view.findViewById(R.id.s_iv1);

animation = AnimationUtils.loadAnimation(

getApplicationContext(), R.anim.feiji);

imageView.startAnimation(animation);

imageView = (ImageView) view.findViewById(R.id.s_iv2);

animation = AnimationUtils.loadAnimation(

getApplicationContext(), R.anim.f_iv2);

imageView.startAnimation(animation);

imageView = (ImageView) view.findViewById(R.id.s_iv3);

animation = AnimationUtils.loadAnimation(

getApplicationContext(), R.anim.f_iv2);

imageView.startAnimation(animation);

break;

case 2:

imageView = (ImageView) view.findViewById(R.id.t_iv1);

animation = AnimationUtils.loadAnimation(

getApplicationContext(), R.anim.f_iv2);

imageView.startAnimation(animation);

imageView = (ImageView) view.findViewById(R.id.t_iv3);

animation = AnimationUtils.loadAnimation(

getApplicationContext(), R.anim.xiaoguo);

imageView.startAnimation(animation);

break;

default:

break;

}

}

@Override

public void onPageScrolled(int arg0, float arg1, int arg2) {

// TODO Auto-generated method stub

}

@Override

public void onPageScrollStateChanged(int arg0) {

// TODO Auto-generated method stub

}

});

}

}

这里是自定义的adapter,为viewpager填充

package com.example.android_unit10_7;

import java.util.List;

import android.content.Context;

import android.support.v4.view.PagerAdapter;

import android.view.View;

import android.view.ViewGroup;

public class MyAdapter extends PagerAdapter {

private List<View> list;

private Context context;

public MyAdapter(Context context, List<View> list) {

this.context = context;

this.list = list;

}

//页數

@Override

public int getCount() {

// TODO Auto-generated method stub

return list.size();

}

//判断是否翻页

@Override

public boolean isViewFromObject(View arg0, Object arg1) {

// TODO Auto-generated method stub

return arg0 == arg1;

}

//移除

@Override

public void destroyItem(ViewGroup container, int position, Object object) {

// TODO Auto-generated method stub

container.removeView(list.get(position));

}

//添加页面

@Override

public Object instantiateItem(ViewGroup container, int position) {

// TODO Auto-generated method stub

container.addView(list.get(position)); //这里添加页面

return list.get(position);

}

}

这里只贴一个动画xml文件,set组合的效果,其他的分效果可以随意设置:在res文件夹下创建一个名字为anim的文件夹,在这里边写动画xml文件

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android"

android:repeatCount="infinite" >

<translate

android:duration="4000"

android:fromXDelta="0"

android:fromYDelta="0"

android:repeatCount="infinite"

android:toXDelta="100"

android:toYDelta="-100" />

<scale

android:duration="4000"

android:fromXScale="1.0"

android:fromYScale="1.0"

android:repeatCount="infinite"

android:toXScale="0.0"

android:toYScale="0.0" />

<rotate

android:duration="4000"

android:fromDegrees="0"

android:pivotX="50%"

android:pivotY="50%"

android:repeatCount="infinite"

android:toDegrees="360" />

<alpha

android:duration="4000"

android:fromAlpha="1.0"

android:repeatCount="infinite"

android:toAlpha="0.0" />

</set>

资源下载页面点击打开链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐