国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > ViewPager介紹和使用說(shuō)明

ViewPager介紹和使用說(shuō)明 時(shí)間:2018-09-20      來(lái)源:未知

ViewPager類提供了多界面切換的新效果。新效果有如下特征:

[1] 當(dāng)前顯示一組界面中的其中一個(gè)界面。

[2] 當(dāng)用戶通過(guò)左右滑動(dòng)界面時(shí),當(dāng)前的屏幕顯示當(dāng)前界面和下一個(gè)界面的一部分。

[3]滑動(dòng)結(jié)束后,界面自動(dòng)跳轉(zhuǎn)到當(dāng)前選擇的界面中。

引用ViewPager控件

ViewPager來(lái)源于google 的補(bǔ)充組件android-support-v13.jar,位置在androidSDK文件夾android-sdk-windows\extras\android\compatibility\v13 下將android-support-v13.jar 引用到項(xiàng)目中

下面我們用功能代碼來(lái)實(shí)現(xiàn)效果:

@ MainActivity.java

package cn.com.farsight;

import java.util.ArrayList;

import java.util.List;

import android.app.Activity;

import android.media.Image;

import android.os.Bundle;

import android.support.v4.view.PagerAdapter;

import android.support.v4.view.ViewPager;

import android.view.View;

import android.view.ViewGroup;

import android.widget.ImageView;

public class MainActivity extends Activity {

/* 先說(shuō)明一下實(shí)現(xiàn)ViewPager的兩種形式。

* 第一種導(dǎo)入第三方j(luò)ar包,包的名字是android-support-v4.jar

* 第二種就是應(yīng)用功能性代碼直接實(shí)現(xiàn),在開(kāi)發(fā)當(dāng)中這種方法已經(jīng)不用了

*

* android-support-v4.jar在 android3.0 以后出現(xiàn)的。

*

* 我們只要用到adapter就要想到三個(gè)步驟:

* 1.初始化控件;

* 2.初始化數(shù)據(jù)源;

* 3.初始化適配器,往適配器里填充數(shù)據(jù)。

*

* 首先在布局文件中。

* 這里我們運(yùn)用第三方的jar包,沒(méi)有提示功能,所以同學(xué)們要記住這屆jar包,在開(kāi)發(fā)當(dāng)中我們經(jīng)常使用。

*

首先,如果繼承pageradapter,至少必須重寫(xiě)下面的四個(gè)方法

1. instantiateItem(ViewGroup, int)

2. destroyItem(ViewGroup, int, Object)

3. getCount()

4. isViewFromObject(View, Object)

*

*/

private List list;

private ViewPager mViewPager;

private TestAdapter adapter;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//new Thread()

//初始化控件

mViewPager = (ViewPager) findViewById(R.id.pager);

//初始化數(shù)據(jù)源,把數(shù)據(jù)添加到list集合中,

list = new ArrayList();

ImageView iv1 = new ImageView(this);

iv1.setImageResource(R.drawable.huonv);

list.add(iv1);

ImageView iv2 = new ImageView(this);

iv2.setImageResource(R.drawable.shuiren);

list.add(iv2);

ImageView iv3 = new ImageView(this);

iv3.setImageResource(R.drawable.xuemo);

list.add(iv3);

/初始化適配器

adapter = new TestAdapter();

//連接數(shù)據(jù)與適配器,把數(shù)據(jù)顯示到adapter上

mViewPager.setAdapter(adapter);

}

private class TestAdapter extends PagerAdapter{

//計(jì)算頁(yè)卡數(shù)量

// 獲取要滑動(dòng)的控件的數(shù)量,在這里我們以滑動(dòng)的頁(yè)卡為例,那么這里就應(yīng)該是展示的頁(yè)卡圖片的ImageView數(shù)量

@Override

public int getCount() {//這個(gè)方法,是獲取當(dāng)前窗體界面數(shù)

// TODO Auto-generated method stub

return list.size();//返回頁(yè)卡的數(shù)量

}

//而isViewFromObject方法是用來(lái)判斷pager的一個(gè)view是否和instantiateItem方法返回的object有關(guān)聯(lián)

/* ViewPager源碼,你去看下addNewItem方法,會(huì)找到instantiateItem的使用方法,注意這里的mItems變量。

* 然后你再搜索下isViewFromObject,會(huì)發(fā)現(xiàn)其被infoForChild方法調(diào)用,返回值是ItemInfo。再去看下ItemInfo的結(jié)構(gòu),

* 其中有一個(gè)object對(duì)象,該值就是instantiateItem返回的。

*

*

* 也就是說(shuō),ViewPager里面用了一個(gè)mItems(ArrayList)來(lái)存儲(chǔ)每個(gè)page的信息(ItemInfo),

* 當(dāng)界面要展示或者發(fā)生變化時(shí),需要依據(jù)page的當(dāng)前信息來(lái)調(diào)整,但此時(shí)只能通過(guò)view來(lái)查找,

* 所以只能遍歷mItems通過(guò)比較view和object來(lái)找到對(duì)應(yīng)的ItemInfo。

*

*/

// 來(lái)判斷顯示的是否是同一張圖片,這里我們將兩個(gè)參數(shù)相比較返回即可

@Override

public boolean isViewFromObject(View arg0, Object arg1) {

// TODO Auto-generated method stub

return arg0 == arg1;

}

// PagerAdapter只緩存三張要顯示的圖片,如果滑動(dòng)的圖片超出了緩存的范圍,就會(huì)調(diào)用這個(gè)方法,將圖片銷毀

@Override

public void destroyItem(ViewGroup container, int position, Object object) {

//super.destroyItem(container, position, object);

container.removeView(list.get(position));

}

//這個(gè)方法,return一個(gè)對(duì)象,這個(gè)對(duì)象表明了PagerAdapter適配器選擇哪個(gè)對(duì)象*放在當(dāng)前的ViewPager中

//這個(gè)方法用來(lái)實(shí)例化頁(yè)卡

// 用這個(gè)方法當(dāng)要顯示的圖片可以進(jìn)行緩存的時(shí)候,會(huì)調(diào)進(jìn)行顯示圖片的初始化,我們將要顯示的ImageView加入到ViewGroup中,然后作為返回值返回即可

@Override

public Object instantiateItem(ViewGroup container, int position) {

container.addView(list.get(position));//添加頁(yè)卡

return list.get(position);

}

}

}

布局文件

@activity_main.xml

xmlns:tools="//schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".MainActivity"

<>

android:id="@+id/pager"

android:layout_width="fill_parent"

android:layout_height="match_parent"/>

 

這樣我們的ViewPager就介紹完了。希望你們能夠喜歡。

上一篇:Android USB Host與HID 通訊(二)

下一篇:使用unix域套接字在進(jìn)程之間傳遞文件描述符

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺(tái)專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見(jiàn)科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號(hào)-5,京公海網(wǎng)安備11010802025203號(hào)

回到頂部