一起學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 感情控_