ViewPager实现的切换动画

来源:互联网 发布:淘宝云客服培训 编辑:程序博客网 时间:2024/06/05 00:39

ViewPager实现的切换效果,共三种,可以作为引导动画,也可以作为页面切换。

  

  


代码MainActivity.java:

package com.daidai.viewpager.activity;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.TextView;import com.daidai.viewpager.R;public class MainActivity extends Activity implements OnClickListener{//三个按钮private TextView bt_default, bt_depth, bt_zoom;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);bt_default = (TextView) findViewById(R.id.bt_default);bt_depth = (TextView) findViewById(R.id.bt_depth);bt_zoom = (TextView) findViewById(R.id.bt_zoom);bt_default.setOnClickListener(this);bt_depth.setOnClickListener(this);bt_zoom.setOnClickListener(this);}@Overridepublic void onClick(View view) {switch (view.getId()) {case R.id.bt_default:intoViewPager(R.id.bt_default);break;case R.id.bt_depth:intoViewPager(R.id.bt_depth);break;case R.id.bt_zoom:intoViewPager(R.id.bt_zoom);break;}}/** * 跳转到viewPager效果页面 * @param id */public void intoViewPager(int id){Intent intent = new Intent(this, ViewpagerActivity.class);intent.putExtra("id", id);startActivity(intent);this.finish();}}

代码ViewpagerActivity.java:

package com.daidai.viewpager.activity;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.view.View.OnClickListener;import android.widget.ImageView;import android.widget.ImageView.ScaleType;import android.widget.LinearLayout;import android.widget.TextView;import com.daidai.viewpager.R;import com.daidai.viewpager.transformer.DepthPageTransformer;import com.daidai.viewpager.transformer.ZoomOutPageTransformer;public class ViewpagerActivity extends Activity implements OnPageChangeListener,OnClickListener{//ViewPager 对象private ViewPager mViewPager;//图片Id数组private int[] mImageIds ;//存放图片的集合private List<ImageView> mImageViewList = new ArrayList<ImageView>();private int id;private ImageView[] indicators = null;private LinearLayout indicatorLayout;private TextView tv_ljty;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_viewpager);//获取主页传递过来的参数id = this.getIntent().getIntExtra("id", 0);mViewPager = (ViewPager) findViewById(R.id.id_viewPager);tv_ljty = (TextView) findViewById(R.id.tv_ljty);//为ViewPager 添加切换动画效果,支持3.0版本及以上switch (id) {case R.id.bt_depth:mImageIds = new int[]{R.drawable.vp5, R.drawable.vp6, R.drawable.vp7, R.drawable.vp8};mViewPager.setPageTransformer(true, new DepthPageTransformer());break;case R.id.bt_zoom:mImageIds = new int[]{R.drawable.vp9, R.drawable.vp10, R.drawable.vp11, R.drawable.vp12};mViewPager.setPageTransformer(true, new ZoomOutPageTransformer());break;default:mImageIds = new int[]{R.drawable.vp1, R.drawable.vp2, R.drawable.vp3, R.drawable.vp4};break;}//引导图片的适配器mViewPager.setAdapter(new newPagerAdapter());mViewPager.setOnPageChangeListener(this);//为"立即体验"按钮,添加点击事件tv_ljty.setOnClickListener(this);indicators = new ImageView[mImageIds.length];indicatorLayout = (LinearLayout) findViewById(R.id.indicator);for(int i = 0; i < mImageIds.length; i++){// 循环加入指示器indicators[i] = new ImageView(this);indicators[i].setBackgroundResource(R.drawable.indicators_default);if (i == 0) {indicators[i].setBackgroundResource(R.drawable.indicators_now);}indicatorLayout.addView(indicators[i]);}}class newPagerAdapter extends PagerAdapter{@Overridepublic Object instantiateItem(ViewGroup container, int position) {ImageView imageView = new ImageView(ViewpagerActivity.this);//imageView.setImageResource(mImageIds[position]);imageView.setBackgroundResource(mImageIds[position]);imageView.setScaleType(ScaleType.CENTER_CROP);container.addView(imageView);mImageViewList.add(imageView);return imageView;}@Overridepublic void destroyItem(ViewGroup container, int position,Object object) {container.removeView(mImageViewList.get(position));}@Overridepublic boolean isViewFromObject(View view, Object object) {return view == object;}@Overridepublic int getCount() {return mImageIds.length;}}@Overridepublic void onClick(View view) {Intent intent = new Intent(this, MainActivity.class);startActivity(intent);this.finish();}@Overridepublic void onPageScrollStateChanged(int arg0) {}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {}@Overridepublic void onPageSelected(int arg0) {//当显示最后一张图片时,显示"立即体验"按钮if(arg0 == mImageIds.length - 1){tv_ljty.setVisibility(View.VISIBLE);}else{tv_ljty.setVisibility(View.GONE);}// 更改指示器图片for (int i = 0; i < indicators.length; i++) {indicators[arg0].setBackgroundResource(R.drawable.indicators_now);if (arg0 != i) {indicators[i].setBackgroundResource(R.drawable.indicators_default);}}}}

activity_main.xml:

<?xml version="1.0" encoding="UTF-8"?><LinearLayout     xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="#ECF0F1"    android:orientation="vertical" >        <include         android:id="@+id/top"        layout="@layout/top" />        <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_gravity="center"        android:background="#E1E6F6"        android:orientation="horizontal">                <TextView             android:layout_width="0dp"            android:layout_height="70dp"            android:layout_weight="3"            android:paddingLeft="10dp"            android:textSize="17sp"            android:text="@string/viewpager_tv"            android:textColor="#333333"/>                <TextView             android:id="@+id/bt_default"            android:layout_width="0dp"            android:layout_height="70dp"            android:layout_weight="1"            android:textSize="17sp"            android:gravity="center"            android:text="@string/gt_tv"            android:textStyle="bold"            android:textColor="#C8C7CC"/>            </LinearLayout>        <View         android:layout_width="match_parent"        android:layout_height="1dp"        android:background="#F2F6F7"/>        <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_gravity="center"        android:background="#E1E6F6"        android:orientation="horizontal">                <TextView             android:layout_width="0dp"            android:layout_height="70dp"            android:layout_weight="3"            android:paddingLeft="10dp"            android:textSize="17sp"            android:text="@string/viewpager_depth_tv"            android:textColor="#333333"/>                <TextView            android:id="@+id/bt_depth"            android:layout_width="0dp"            android:layout_height="70dp"            android:layout_weight="1"            android:textSize="17sp"            android:gravity="center"            android:text="@string/gt_tv"            android:textStyle="bold"            android:textColor="#C8C7CC"/>            </LinearLayout>        <View         android:layout_width="match_parent"        android:layout_height="1dp"        android:background="#F2F6F7"/>        <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_gravity="center"        android:background="#E1E6F6"        android:orientation="horizontal">                <TextView             android:layout_width="0dp"            android:layout_height="70dp"            android:layout_weight="3"            android:paddingLeft="10dp"            android:textSize="17sp"            android:text="@string/viewpager_zoom_tv"            android:textColor="#333333"/>                <TextView             android:id="@+id/bt_zoom"            android:layout_width="0dp"            android:layout_height="70dp"            android:layout_weight="1"            android:textSize="17sp"            android:gravity="center"            android:text="@string/gt_tv"            android:textStyle="bold"            android:textColor="#C8C7CC"/>            </LinearLayout>    </LinearLayout>

activity_viewpager.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <android.support.v4.view.ViewPager        android:id="@+id/id_viewPager"        android:layout_width="match_parent"        android:layout_height="match_parent" />    <LinearLayout         android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:gravity="center"        android:orientation="vertical"        >                <TextView        android:id="@+id/tv_ljty"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginBottom="80dp"        android:background="@drawable/ljty"        android:gravity="center"        android:text="@string/ljty"        android:textColor="@android:color/white"        android:textSize="18sp"         android:visibility="gone"/>                <LinearLayout             android:id="@+id/indicator"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_gravity="center"            android:layout_marginBottom="15dp"            android:gravity="center"            android:orientation="horizontal" >                    </LinearLayout>            </LinearLayout></RelativeLayout>

本人是一名Java开发人员,初次涉及Android开发,希望大家能多多指点。

同时附上源码下载以供参考:http://download.csdn.net/detail/daidaineteasy/8569107  点击打开链接


0 0
原创粉丝点击