使用ViewPager模拟实现应用程序启动界面(一)

           经常在开发应用程序的时候,软件启动有启用动画界面,一般使用图片来进行界面该版本最新更新等等内容,今天来使用ViewPager来模拟实现这功能,也希望对大家有个小小的参考作用,在以后的项目中能够使用到。

       首先准备工作,若干张需要进行显示的图片和底部用到的小圆圈

        项目结构图如下:

       

        2:运行效果图



         大致效果如上,具体编码实现:

    布局文件是android.support.v4.view.ViewPager和底部五个小圆圈main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     >      <android.support.v4.view.ViewPager         android:id="@+id/myViewpager"         android:layout_width="fill_parent"         android:layout_height="fill_parent"         />          <LinearLayout          android:id="@+id/linearlayout"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:orientation="horizontal"         android:layout_alignParentBottom="true"         android:layout_centerHorizontal="true"         >         <ImageView              android:id="@+id/img1"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:src=\'#\'" /point_selector"             android:padding="17dip"/>         <ImageView              android:id="@+id/img2"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:src=\'#\'" /point_selector"             android:padding="17dip"/>         <ImageView              android:id="@+id/img3"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:src=\'#\'" /point_selector"             android:padding="17dip"/>         <ImageView              android:id="@+id/img4"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:src=\'#\'" /point_selector"             android:padding="17dip"/>          <ImageView              android:id="@+id/img5"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:src=\'#\'" /point_selector"             android:padding="17dip"/>              </LinearLayout>  </RelativeLayout>


 ViewPageAdapter.java ViewPager页面的适配器

/**  * 自定义ViewPager适配器  * @author jiangqingqing  *  */ public class MyViewPagerAdapter extends PagerAdapter {  	private List<View> mLists; 	public MyViewPagerAdapter(List<View> pLists) 	{ 		this.mLists=pLists; 	} 	@Override 	public int getCount() { 		// TODO Auto-generated method stub 		return mLists.size(); 	}  	@Override 	public boolean isViewFromObject(View arg0, Object arg1) { 		// TODO Auto-generated method stub 		return arg0==arg1; 	}  	@Override 	public void destroyItem(View container, int position, Object object) { 		((ViewPager)container).removeView(mLists.get(position)); 	}  	@Override 	public Object instantiateItem(View container, int position) { 		((ViewPager)container).addView(mLists.get(position)); 		return mLists.get(position); 	}
MainActicvity.java

/**  * 使用ViePager简单模拟 应用的启动动画界面  * @author jiangqingqing  *  */ public class MainActivity extends Activity {  	private ViewPager mViewPager; 	private MyViewPagerAdapter mAdapter; 	private LinearLayout mLinearLayout; 	private List<View> mLists = new ArrayList<View>(); 	private Integer[] img_ids = new Integer[] { R.drawable.guide_01, 			R.drawable.guide_02, R.drawable.guide_03, R.drawable.guide_04, 			R.drawable.guide_05 }; 	private ImageView[] points = new ImageView[img_ids.length];  	private int current=0;//默认在第一页  	@Override 	protected void onCreate(Bundle savedInstanceState) { 		super.onCreate(savedInstanceState); 		setContentView(R.layout.main); 		mViewPager = (ViewPager) this.findViewById(R.id.myViewpager); 		mLinearLayout = (LinearLayout) this.findViewById(R.id.linearlayout);  		//把需要显示的图片加入到ViewPager页面集合中 		for (int i = 0; i < img_ids.length; i++) { 			ImageView iv = new ImageView(this); 			iv.setLayoutParams(new LinearLayout.LayoutParams( 					LinearLayout.LayoutParams.FILL_PARENT, 					LinearLayout.LayoutParams.FILL_PARENT)); 			iv.setImageResource(img_ids[i]); 			mLists.add(iv); 		} 		 		mAdapter=new MyViewPagerAdapter(mLists); 		mViewPager.setAdapter(mAdapter); 		 		//为ViewPager选项卡添加  切换时候的监听 		mViewPager.setOnPageChangeListener(new MyOnPagerChangeListener()); 		//初始化下面的小圆点 		initPoints();	 	}   	  //初始化下面的小圆点       private void initPoints()       {     	  for(int i=0;i<img_ids.length;i++)     	  {     		  points[i]=(ImageView)mLinearLayout.getChildAt(i);     		  points[i].setImageResource(R.drawable.point_normal);     		       	  }     	  current=0;//默认在第一页     	  points[current].setImageResource(R.drawable.point_select);//此刻处于第一页,把第一页的小圆圈设置为unenabled       } 	    	   class MyOnPagerChangeListener implements OnPageChangeListener 	   { 		@Override 		public void onPageScrollStateChanged(int arg0) { 						 		} 		@Override 		public void onPageScrolled(int arg0, float arg1, int arg2) { 				 		} 		@Override 		public void onPageSelected(int arg0) { 			 			points[arg0].setImageResource(R.drawable.point_select); 			points[current].setImageResource(R.drawable.point_normal); 			current=arg0; 		} 		    	   } 

    这个Demo例子比较简单,但是可以实现我们需要的效果。详细代码在下面的链接,有兴趣的可以下载下来跑一下

   http://download.csdn.net/detail/jiangqq781931404/5776739

   

你可能感兴趣的:(android,viewpager,开机启动界面)