有过开发经验的程序员都知道这个效果,是当我们第一次安装一个软件时有一个使用说明的图片切换效果,他是如何实现的呢?我们一起学习一下吧,难度系数1.0,是只要你仔细分析,都可以学会。废话不多说,下面我们开始本篇的介绍。 本篇我需要使用到ViewPager,对于ViewPager的介绍,不再详述,网上关于ViewPager的介绍很多,大家可以自行去了解。 再进行动画效果制作之前我们先实现一个图片的切换效果。 布局文件: <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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <com.example.android_viewpager.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent"> </com.example.android_viewpager.ViewPager> </RelativeLayout> 我们的Activity: public class MainActivity extends Activity { private ViewPager mViewPager;//系统提供的 int [] imageIds = {R.drawable.guide_image1, R.drawable.guide_image2, R.drawable.guide_image3}; List<ImageView> listImager = new ArrayList<ImageView>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mViewPager = (ViewPager) findViewById(R.id.viewPager);//调用系统提供的 mViewPager.setAdapter(new PagerAdapter() { @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(listImager.get(position)); } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView imagerView = new ImageView(MainActivity.this); imagerView.setImageResource(imageIds[position]); imagerView.setScaleType(ScaleType.CENTER_CROP);//设置样式 container.addView(imagerView); listImager.add(imagerView); return imagerView; } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } @Override public int getCount() { return imageIds.length; } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } }