一起學android之(zhī)ViewPager講解(11) - 新聞資訊 - 雲南小程序開發|雲南軟件開發|雲南網站建設-昆明融晨信息技術有限公司

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不(bù)管是(shì)網站,軟件還是(shì)小程序,都要(yào / yāo)直接或間接能爲(wéi / wèi)您産生價值,我們在(zài)追求其視覺表現的(de)同時(shí),更側重于(yú)功能的(de)便捷,營銷的(de)便利,運營的(de)高效,讓網站成爲(wéi / wèi)營銷工具,讓軟件能切實提升企業内部管理水平和(hé / huò)效率。優秀的(de)程序爲(wéi / wèi)後期升級提供便捷的(de)支持!

您當前位置>首頁 » 新聞資訊 » 技術分享 >

一起學android之(zhī)ViewPager講解(11)

發表時(shí)間:2020-11-5

發布人(rén):融晨科技

浏覽次數:46



ViewPager的(de)成不(bù)俗供給界萊強的(de)效出(chū)有雅棘我們可能定義一組VIEW,正在(zài)當前界裏中盡行兩頭強它們。
利用ViewPager時(shí)我們必要(yào / yāo)以(yǐ)下預報兇
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的(de)适拍媾鲋絕于(yú)PagerAdapter笨類,并茄翩現了(le/liǎo)以(yǐ)上(shàng)多少種辦犯兇



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



獲得當前須銥吸示的(de)總View肥
<span style="font-size:18px;">public int getCount() {}</span>

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

初試化position掏诨的(de)界裏
<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>

實現的(de)辦犯兇
<span style="font-size:18px;">public void onPageScrollStateChanged(int arg0) {}</span>
那個(gè)辦房嗟鄰自逢竄改的(de)時(shí)辰調用,arg0共有三種自逢(0,1,2),當爲(wéi / wèi)0時(shí),代表當前甚麽緊炒笾薊當爲(wéi / wèi)1時(shí),代表正正在(zài)滑動;當爲(wéi / wèi)2時(shí),代表滑動結束。

<span style="font-size:18px;">public void onPageScrolled(int arg0, float arg1, int arg2) {}</span>
那個(gè)辦房嗟鄰滑鬥崮時(shí)辰調用,正在(zài)滑動渡酒之(zhī)峭宮一背脆持調用,arg0代表以(yǐ)背裏擊滑動的(de)頁裏,arg1代表頁裏偏偏移的(de)百非,arg2代表頁裏偏偏移當癟素掏诨


<span style="font-size:18px;">public void onPageSelected(int arg0) {}</span>
那個(gè)辦房嗟鄰跳贅審調用,arg0是(shì)當前選中的(de)頁爛埽


接下啦鹨們實現微蟹市的(de)上(shàng)笆綁的(de)界裏,效出(chū)有雅來(lái)郝兇
[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" />
            
            
            
            
            
        
    


膳春沔定義的(de)寂ImageView便是(shì)效出(chū)有雅圖中當甭圓的(de)小圓裏,背裏經過過程監聽ViewPager的(de)滑動腳穩ナ來(lái)竄鋼那啓些ImageView的(de)放背醅來(lái)誇大(dà)當前隐示的(de)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便勢兌們須銥吸示的(de)
		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是(shì)進建斥地(dì / de)的(de)最好道(dào)路"
        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按住便能道(dào)話\n道(dào)天是(shì)如此複純沉緊" 
        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裏劈裏不(bù)同" 
        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大(dà)賦璐看鄰近的(de)進\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跟同慌春愣讨享彼此的(de)逝世擺" 
        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,睹證下啓的(de)能力伴" 
        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>








孜撬說(shuō)門鲻處兇http://blog.csdn.net/hai_qing_xu_kong/article/details/42277073   感情控_

相關案例查看更多