Android ViewPager 引导页的一种效果
2015-06-15 15:32
417 查看
效果图:
![](http://img.blog.csdn.net/20150615154337300?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQW5kZHJvaWRfTGFuWWFu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
主要代码:
主要代码:
import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.view.animation.RotateAnimation; import android.widget.ImageView; import android.widget.ImageView.ScaleType; import android.widget.LinearLayout; public class MainActivity extends Activity { private ViewPagerAdapter adapter; private ViewPager viewpager; private LinearLayout layout; private int LastPageIndex=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewpager=(ViewPager)findViewById(R.id.main_viewpager); layout=(LinearLayout)findViewById(R.id.layout_index); adapter=new ViewPagerAdapter(getAdapterViews(new int[]{R.drawable.one,R.drawable.two,R.drawable.three,R.drawable.four,R.drawable.five})); viewpager.setAdapter(adapter); viewpager.setOnPageChangeListener(getPageChangerListener()); setLayoutIndexViews(5); } private OnPageChangeListener getPageChangerListener() { // TODO Auto-generated method stub return new OnPageChangeListener() { @Override public void onPageSelected(int position) { // TODO Auto-generated method stub ImageView mImageView1=(ImageView)layout.getChildAt(position); mImageView1.setImageResource(R.drawable.index_check); ImageView mImageView2=(ImageView)layout.getChildAt(LastPageIndex); mImageView2.setImageResource(R.drawable.index_nor); if(LastPageIndex>position){ View view=layout.getChildAt(position); View view2=layout.getChildAt(LastPageIndex); RotateAnimation mRotateAnimation2=new RotateAnimation(0.0f, 180.0f,view2.getWidth()/2,view2.getHeight()/2); RotateAnimation mRotateAnimation=new RotateAnimation(360.0f, 180.0f,view.getWidth()/2,view.getHeight()/2); mRotateAnimation.setDuration(500); mRotateAnimation2.setDuration(500); view2.setAnimation(mRotateAnimation); view.startAnimation(mRotateAnimation); view2.startAnimation(mRotateAnimation); }else if(LastPageIndex<position){ View view=layout.getChildAt(position); View view2=layout.getChildAt(LastPageIndex); RotateAnimation mRotateAnimation2=new RotateAnimation(360.0f, 180.0f,view2.getWidth()/2,view2.getHeight()/2); RotateAnimation mRotateAnimation=new RotateAnimation(180.0f, 360.0f,view.getWidth()/2,view.getHeight()/2); mRotateAnimation.setDuration(500); mRotateAnimation2.setDuration(500); view2.setAnimation(mRotateAnimation); view.startAnimation(mRotateAnimation); view2.startAnimation(mRotateAnimation); } LastPageIndex=position; } @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 } }; } private ArrayList<View> getAdapterViews(int ...params){ ArrayList<View> list=new ArrayList<View>(); LayoutParams mLayoutParams=new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT); for (int i = 0; i < params.length; i++) { ImageView mImageView=new ImageView(this); mImageView.setLayoutParams(mLayoutParams); mImageView.setScaleType(ScaleType.FIT_XY); mImageView.setBackgroundResource(params[i]); list.add(mImageView); } return list; } private void setLayoutIndexViews(int size){ for (int i = 0; i < size; i++) { ImageView mImageView=new ImageView(this); LayoutParams mLayoutParams=new LayoutParams(45,45); mImageView.setPadding(5, 5, 5, 5); mImageView.setLayoutParams(mLayoutParams); if(i!=0){ mImageView.setImageResource(R.drawable.index_nor); }else{ mImageView.setImageResource(R.drawable.index_check); } layout.addView(mImageView); } } }
相关文章推荐
- Android自定义View—NumberPicker的使用
- Android自定义AlertDialog去掉黑边的方法
- Intel 英特尔之开发人员专区 ------Android 开发之Android 应用程序如何调用支付宝接口
- 关于在TextView中设置DrawableLeft的问题
- Android自定义View—HorizontalSlideDeleteListView
- Android自定义View—SildeMenu
- android 开发环境的搭建
- Android整机源码如何轻松下载?清华大学Android源码镜像
- Android自定义View—侧边栏菜单
- Android自定义View—自定义的DatePicker
- androidの监听EditView中的文本TextWatcher
- Android ViewDragHelper 实现 QQ5.0 侧滑
- Openfire + Smack 4.1.1 搭建Android聊天平台
- Android实用方法—返回键的监听
- Android优化系列——性能优化(资源存储)
- Android自定义View的实现方法,带你一步步深入了解View(四)
- Android报错"case expressions must be constant expressions"
- Design Support Library —— TextInputLayout
- android之ScrollView里嵌套ListView(转)
- drawableLeft