//此类为Activity实现了加载图片资源、添加图片的动画效果
package com.example.viewpager_demo;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
import android.app.Activity;
public class MainActivity extends Activity {
private ViewPager mViewPager;
private int[] mImgIds = new int[] { R.drawable.picture_001,
R.drawable.picture_002, R.drawable.picture_003 };
private List<ImageView> mImages = new ArrayList<ImageView>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 去掉主题
requestWindowFeature(Window.FEATURE_NO_TITLE);
mViewPager = (ViewPager) findViewById(R.id.id_viewpager);
// 为ViewPager添加动画效果
mViewPager.setPageTransformer(true, new DepthPageTransformer());
mViewPager.setAdapter(new PagerAdapter() {
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView mImageView = new ImageView(MainActivity.this);
mImageView.setImageResource(mImgIds[position]);
mImageView.setScaleType(ScaleType.CENTER_CROP);
container.addView(mImageView);
mImages.add(mImageView);
return mImageView;
}
@Override
public void destroyItem(ViewGroup container, int position,
Object object) {
container.removeView(mImages.get(position));
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public int getCount() {
return mImgIds.length;
}
});
}
}
//ViewPager的实现,Googal原生提供更多的方式,文章下边有贴出链接
package com.example.viewpager_demo;
import android.support.v4.view.ViewPager.PageTransformer;
import android.view.View;
public class DepthPageTransformer implements PageTransformer {
private static float MIN_SCALE = 0.5f;
@Override
public void transformPage(View view, float position) {
int pageWidth = view.getWidth();
if (position < -1) { // [-Infinity,-1)
// This page is way off-screen to the left.
view.setAlpha(0);
view.setTranslationX(0);
} else if (position <= 0) { // [-1,0]
// Use the default slide transition when
// moving to the left page
view.setAlpha(1);
view.setTranslationX(0);
view.setScaleX(1);
view.setScaleY(1);
} else if (position <= 1) { // (0,1]
// Fade the page out.
view.setAlpha(1 - position);
// Counteract the default slide transition
view.setTranslationX(pageWidth * -position);
// Scale the page down (between MIN_SCALE and 1)
float scaleFactor = MIN_SCALE + (1 - MIN_SCALE)
* (1 - Math.abs(position));
view.setScaleX(scaleFactor);
view.setScaleY(scaleFactor);
} else { // (1,+Infinity]
// This page is way off-screen to the right.
view.setAlpha(0);
view.setScaleX(1);
view.setScaleY(1);
}
}
}
//用系统自带的ViewPager(按CTRL + SHIFT + T, 输入ViewPager会出现包名)
<android.support.v4.view.ViewPager
android:id="@+id/id_viewpager"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</android.support.v4.view.ViewPager>
//更多实现ViewPager动画方式:
http://git.oschina.net/yuhj/CatEyeMovie/blob/02fa10d82e330b3efd964a47d0cb82affb22e1be/CatEyeMovie/src/com/yuhj/cateyemovie/effect/ZoomOutPageTransformer.java