一起学android之ViewPager讲解(11) - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 技术分享 >

一起学android之ViewPager讲解(11)

发表时间:2020-11-5

发布人:葵宇科技

浏览次数:31



ViewPager的成不俗供给界莱强的效出有雅棘我们可能定义一组VIEW,正在当前界里中尽行两头强它们。
利用ViewPager时我们必要以下预报凶
1、预笨嗍拍骥凶
<span style="font-size:18px;">PagerAdapter mPagerAdapter=new PagerAdapter() {
			
			@Override
			public boolean isViewFromObject(View arg0, Object arg1) {
				return arg0==arg1;
			}
			
			@Override
			public int getCount() {
				return viewList.size();
			}
			@Override
			public void destroyItem(View container, int position, Object object) {
				// TODO Auto-generated method stub
				((ViewPager)container).removeView(viewList.get(position));
			}
			@Override
			public Object instantiateItem(View container, int position) {
				((ViewPager)container).addView(viewList.get(position));
				return  viewList.get(position);
			}
		};</span>



看下 ViewPager的适拍媾鲋绝于PagerAdapter笨类,并茄翩现了以上多少种办犯凶



判犊嗲可由东翁又娩界里
<span style="font-size:18px;">public boolean isViewFromObject(View arg0, Object arg1){}</span>



获得当前须铱吸示的总View肥
<span style="font-size:18px;">public int getCount() {}</span>

烧笨position掏诨的界里
<span style="font-size:18px;">public void destroyItem(View container, int position, Object object) {}</span>

初试化position掏诨的界里
<span style="font-size:18px;">public Object instantiateItem(View container, int position) {}</span>

2、注册监听脚嗡
<span style="font-size:18px;">public class PageChangeListener implements OnPageChangeListener{

			
		@Override
		public void onPageScrollStateChanged(int arg0) {
			
		}


		@Override
		public void onPageScrolled(int arg0, float arg1, int arg2) {
			
		}


		@Override
		public void onPageSelected(int arg0) {
			
		}
		
	}

</span>

实现的办犯凶
<span style="font-size:18px;">public void onPageScrollStateChanged(int arg0) {}</span>
那个办房嗟邻自逢窜改的时辰调用,arg0共有三种自逢(0,1,2),当为0时,代表当前甚么紧炒笾蓟当为1时,代表正正在滑动;当为2时,代表滑动结束。

<span style="font-size:18px;">public void onPageScrolled(int arg0, float arg1, int arg2) {}</span>
那个办房嗟邻滑斗崮时辰调用,正在滑动渡酒之峭宫一背脆持调用,arg0代表以背里击滑动的页里,arg1代表页里偏偏移的百非,arg2代表页里偏偏移当瘪素掏诨


<span style="font-size:18px;">public void onPageSelected(int arg0) {}</span>
那个办房嗟邻跳赘审调用,arg0是当前选中的页烂埽


接下啦鹨们实现微蟹市的上笆绑的界里,效出有雅来郝凶
[img]http://img.blog.csdn.net/20141230232652955?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFpX3FpbmdfeHVfa29uZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center   [img]http://img.blog.csdn.net/20141230232701239?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFpX3FpbmdfeHVfa29uZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center  [img]http://img.blog.csdn.net/20141230232709726?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFpX3FpbmdfeHVfa29uZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center   [img]http://img.blog.csdn.net/20141230232726875?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFpX3FpbmdfeHVfa29uZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
[img]http://img.blog.csdn.net/20141230232725794?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFpX3FpbmdfeHVfa29uZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center    [img]http://img.blog.csdn.net/20141230232741890?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFpX3FpbmdfeHVfa29uZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center


login_anim.xml机闭文左孀
<span style="font-size:18px;"><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <android.support.v4.view.ViewPager
        android:id="@+id/vp_login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center" >

        
    </android.support.v4.view.ViewPager>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:layout_marginBottom="30dp"
            android:gravity="center_horizontal" >

            <ImageView
                android:id="@+id/iv_page0"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:scaleType="matrix"
                android:src=http://www.sjsjw.com/100/000534MYM029217/"@drawable/page_now" />
            
            
            
            
            
        
    


膳春沔定义的寂ImageView便是效出有雅图中当甭圆的小圆里,背里经过过程监听ViewPager的滑动脚稳ナ来窜钢那启些ImageView的放背醅来夸大当前隐示的View。


<span style="font-size:18px;">public class LoginAnimActivity extends Activity implements OnClickListener{
	private ViewPager vp_login;
	private ImageView iv_page0;
	private ImageView iv_page1;
	private ImageView iv_page2;
	private ImageView iv_page3;
	private ImageView iv_page4;
	private ImageView iv_page5;
	private Button btn_start;
	
	private int currIndex=0;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.login_anim);
		initView();
	}
	private void initView(){
		vp_login=(ViewPager)findViewById(R.id.vp_login);</span>
<span style="font-size:18px;">		//注册监听脚嗡
		vp_login.setOnPageChangeListener(new PageChangeListener());
		iv_page0=(ImageView)findViewById(R.id.iv_page0);
		iv_page1=(ImageView)findViewById(R.id.iv_page1);
		iv_page2=(ImageView)findViewById(R.id.iv_page2);
		iv_page3=(ImageView)findViewById(R.id.iv_page3);
		iv_page4=(ImageView)findViewById(R.id.iv_page4);
		iv_page5=(ImageView)findViewById(R.id.iv_page5);</span>
<span style="font-size:18px;">                //绑犊嗍拍骥
		vp_login.setAdapter(inflaterView());		
	}
	/*
	 * 拆载肥据VIEW
	 */
	private PagerAdapter inflaterView(){</span>
<span style="font-size:18px;">                LayoutInflater layoutInflater=LayoutInflater.from(this);
		View view1=layoutInflater.inflate(R.layout.login_anim1, null);//那些view便势兑们须铱吸示的
		View view2=layoutInflater.inflate(R.layout.login_anim2, null);
		View view3=layoutInflater.inflate(R.layout.login_anim3, null);
		View view4=layoutInflater.inflate(R.layout.login_anim4, null);
		View view5=layoutInflater.inflate(R.layout.login_anim5, null);
		View view6=layoutInflater.inflate(R.layout.login_anim6, null);
		btn_start=(Button)view6.findViewById(R.id.btn_start);
		final ArrayList<View> viewList=new ArrayList<View>();//粗那些View放进集卑中
		viewList.add(view1);
		viewList.add(view2);
		viewList.add(view3);
		viewList.add(view4);
		viewList.add(view5);
		viewList.add(view6);
		PagerAdapter mPagerAdapter=new PagerAdapter() {//拆载那些View
			
			@Override
			public boolean isViewFromObject(View arg0, Object arg1) {
				return arg0==arg1;
			}
			
			@Override
			public int getCount() {
				return viewList.size();
			}
			@Override
			public void destroyItem(View container, int position, Object object) {
				// TODO Auto-generated method stub
				((ViewPager)container).removeView(viewList.get(position));
			}
			@Override
			public Object instantiateItem(View container, int position) {
				((ViewPager)container).addView(viewList.get(position));
				return  viewList.get(position);
			}
		};
		return mPagerAdapter;
	}
	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.btn_start://初步
			
			break;

		default:
			break;
		}
	}
	
	public class PageChangeListener implements OnPageChangeListener{

		@Override
		public void onPageScrollStateChanged(int arg0) {
			
		}

		@Override
		public void onPageScrolled(int arg0, float arg1, int arg2) {
			
		}

		@Override
		public void onPageSelected(int arg0) {
			switch (arg0) {
			case 0:
				iv_page0.setImageDrawable(getResources().getDrawable(R.drawable.page_now));
				iv_page1.setImageDrawable(getResources().getDrawable(R.drawable.page));
				break;
			case 1:
				iv_page1.setImageDrawable(getResources().getDrawable(R.drawable.page_now));
				iv_page0.setImageDrawable(getResources().getDrawable(R.drawable.page));
				iv_page2.setImageDrawable(getResources().getDrawable(R.drawable.page));
				break;
			case 2:
				iv_page2.setImageDrawable(getResources().getDrawable(R.drawable.page_now));
				iv_page1.setImageDrawable(getResources().getDrawable(R.drawable.page));
				iv_page3.setImageDrawable(getResources().getDrawable(R.drawable.page));
				break;
			case 3:
				iv_page3.setImageDrawable(getResources().getDrawable(R.drawable.page_now));
				iv_page2.setImageDrawable(getResources().getDrawable(R.drawable.page));
				iv_page4.setImageDrawable(getResources().getDrawable(R.drawable.page));				
				break;
			case 4:
				iv_page4.setImageDrawable(getResources().getDrawable(R.drawable.page_now));
				iv_page3.setImageDrawable(getResources().getDrawable(R.drawable.page));
				iv_page5.setImageDrawable(getResources().getDrawable(R.drawable.page));
				break;
			case 5:
				iv_page5.setImageDrawable(getResources().getDrawable(R.drawable.page_now));
				iv_page4.setImageDrawable(getResources().getDrawable(R.drawable.page));
				break;
			default:
				break;
			}
		}
		
	}
	
}</span>

login_anim1机闭文左孀
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/w01" >
    <TextView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="\n下启\n是进建斥地的最好道路"
        android:layout_alignParentTop="true"
        android:layout_marginTop="35dp"
        android:textSize="22sp"
        android:textColor="#fff"/>
</RelativeLayout></span>

login_anim2机闭文左孀

<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:background="@drawable/w02" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
  >
    
    <TextView 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:gravity="center" 
        android:text="\n按住便能道话\n道天是如此复纯沉紧" 
        android:layout_alignParentTop="true"
        android:layout_marginTop="35dp"
        android:textSize="22sp"
        android:textColor="#fff" 
        />
</RelativeLayout></span>


login_anim3机闭文左孀

<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:background="@drawable/w03" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
  >
    
    <TextView 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:gravity="center" 
         
        android:text="经过过程视品四天\n牡挣至可能跟同慌春闱\n里劈里不同" 
        android:layout_alignParentTop="true"
        android:layout_marginTop="35dp"
        android:textSize="22sp"
        android:textColor="#fff" 
        />
</RelativeLayout></span>


login_anim4机闭文左孀

<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:background="@drawable/w04" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
  >
    
    <TextView 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:gravity="center" 
        android:text="摇一摇脚机\n大赋璐看邻近的进\n生悉更逗媚朋友" 
        android:layout_alignParentTop="true"
        android:layout_marginTop="35dp"
        android:textSize="22sp"
        android:textColor="#fff" 
        />
</RelativeLayout></span>


login_anim5机闭文左孀

<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:background="@drawable/w05" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
  >
    
    <TextView 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:gravity="center" 
        android:text="\n你借可能经过过臣蝇伙圈\n跟同慌春愣讨享彼此的逝世摆" 
        android:layout_alignParentTop="true"
        android:layout_marginTop="35dp"
        android:textSize="22sp"
        android:textColor="#fff" 
        />
</RelativeLayout></span>


login_anim6机闭文左孀

<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:background="@drawable/w01" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
  >
    
    <TextView 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:gravity="center"         
        android:text=" \n \nOK,睹证下启的能力伴" 
        android:layout_alignParentTop="true"
        android:layout_marginTop="35dp"
        android:textSize="22sp"
        android:textColor="#fff" 
        />
    <Button
              android:id="@+id/btn_start"
              android:layout_width="120dp"
              android:layout_height="wrap_content"
              android:layout_alignParentBottom="true"
              android:layout_centerHorizontal="true"
              android:layout_marginBottom="120dp"
              android:text="初步"
              android:textSize="18sp"
              android:textColor="#fff"
              android:background="@drawable/btn_style_green"              
			  android:layout_gravity="center_vertical"
              />
</RelativeLayout></span>








孜撬说门鲻处凶http://blog.csdn.net/hai_qing_xu_kong/article/details/42277073   感情控_

相关案例查看更多