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
- ViewPager实现的切换动画
- ViewPager 切换动画实现
- PageTransformer实现个性的ViewPager切换动画
- ViewPager的切换动画
- 设置ViewPager的切换动画简单的实现
- ViewPager 的切换动画效果
- ViewPager的动画切换效果
- ViewPager切换动画的方法
- Android 实现个性的ViewPager切换动画 实战PageTransformer
- Android 实现个性的ViewPager切换动画 实战PageTransformer
- android用ViewPager实现带有动画效果的页面切换
- Android开发知识(二):ViewPager切换动画效果的实现
- Android-ViewPager( 切换动画实现 , 兼容性实现)
- Android viewpager 界面切换动画实现
- Android 中ViewPager 实现动画效果切换
- 用开源项目JazzyViewPager实现ViewPager切换动画
- 千变万化的ViewPager切换动画(2)--自定义ViewPager的实现方法
- 千变万化的ViewPager切换动画(三、自定义ViewPager的实现方法)
- Rescue The Princess 山东省赛题 求三角形顶点 atan2求解
- P52 第34题 输入两个整数或三个整数得到最大值
- 省赛选拔赛——个人赛第一场
- UVA - 10815 - Andy's First Dictionary
- Eclipse Maven创建Web项目
- ViewPager实现的切换动画
- MySQL与Oracle的大小写问题
- 【Python】科学计算环境 —— Anaconda
- Bind9 日志
- cocos2d-x 无法打开文件“libbox2d.lib”解决
- android studio中导入第三方jar包和第三方库文件的方法
- JavaScript里面的坑(一)——读《JavaScript高级程序设计》有感
- 第二章作业P51.15(输入一个正整数n,输出正三角形图案。)
- [BZOJ 1047] HAOI 2007 理想的正方形 · 单调队列