1. 程式人生 > >在安卓中,怎麼通過ViewPager來實現輪播圖的效果?

在安卓中,怎麼通過ViewPager來實現輪播圖的效果?

           //currentPage是一個角標,通過viewPager中的條目獲取當前頁面的角標,假如條目是6,因為%list.size,那麼當前頁面的角標就是0.
int currentPage = viewPager.getCurrentItem()%list.size();
  //把當前頁面的描述資訊給新增進來
tv_intro.setText(list.get(currentPage).getIntro());

//這句話的目的就是假如當前頁面的角標和小圓點的角標相等,那麼小圓點就設定為選中的狀態,就會改變顏色
for (int i = 0; i < dot_layout.getChildCount(); i++) {
dot_layout.getChildAt(i).setEnabled(i==currentPage);

}
}
//把圖片設定一個介面卡
class MyPagerAdapter extends PagerAdapter{

   //5張圖片輪播100次
@Override
public int getCount() {
return 100;
}

@Override
//預載入輪播圖片的功能,這個方法是固定格式
public boolean isViewFromObject(View view, Object object) {
return view==object;
}

              @Override
//這個方法最重要的是把輪播圖顯示出來
public Object instantiateItem(ViewGroup container, int position) {
//把layout.adapter_ad這個佈局載入到view,目的是輪播圖可以在介面上顯示
View view = View.inflate(MainActivity.this, R.layout.adapter_ad, null);
//找到ImageView這個控制元件
ImageView imageView = (ImageView) view.findViewById(R.id.image);
//ad中包含圖片id和描述資訊,有5張圖片,可以最多輪播100次,百分號的目的就是取餘,也就是說當角標為98的時候,輪播的是第三張圖片
//通過list集合中的角標可以得到當前頁面的圖片資訊,也就得到圖片的id資訊
Ad ad = list.get(position%list.size());
//通過圖片的id把這五張圖片載入到ImageView中
imageView.setImageResource(ad.getIconResId());
//一定不能少,將view加入到viewPager中
container.addView(view);
//然後返回view
return view;
}

/**
* 銷燬page
* position: 當前需要消耗第幾個page
* object:當前需要消耗的page
*/
//這個方法的意思是,當輪播圖片的時候,從第一張圖片輪播到第二張圖片的時候,第一張圖片要銷燬,這個是固定模式
@Override
public void destroyItem(ViewGroup container, int position, Object object) {

container.removeView((View) object);
}


}


}

相關推薦

怎麼通過ViewPager實現效果

           //currentPage是一個角標,通過viewPager中的條目獲取當前頁面的角標,假如條目是6,因為%list.size,那麼當前頁面的角標就是0.int currentPage = viewPager.getCurrentItem()%list.size();  //把當前頁面的

Java開發通過sql實現過濾以及分頁

  我們通過一個需求來引入問題。 首先,簡單介紹一下需求:實現一個下圖的頁面,包含了過濾以及分頁。資料是後臺資料庫獲得到的。 那麼關於如何實現過濾以及分頁,考慮到通過前臺實現或者後臺實現,我們不妨來分析一下兩種方法。 首先,前臺實現:無非就是後臺獲取所有的list,傳

利用js實現

        由於現在很多網站都有輪播圖的存在,所以自己的學著來搗鼓一下下,內容有點長!    (1)、首先要先製作好html頁面,利用div盒子來佈局       &nb

用javaScript實現效果 包括自動變換按鈕控制上一張下一張切換

1.HTML程式碼 <div id="wrap"> <img src="images/1.jpg" alt="" class="on"> <img src="images/2.jpg" alt=""> <im

unslider插件實現效果

地址 href aid jquery輪播 boot http 用法 .com r.js unslider插件下載地址(含有用法):http://www.bootcss.com/p/unslider/ 可以  下載unslider.js文件(http://pan.baidu.

jQuery實現效果

代碼實現 idt 代碼 out 顯示 move posit 技術 輪播圖 任務實現:用jQuery實現輪播圖。 來自瓶子啊之小白,歡迎來訪,歡迎指導。 相信大家從事前端的開發者初級就是輪播圖,首先我用jquery寫了一個,第二篇我會用原生JavaScript給大家展示。其原

javascript實現效果

<!DOCTYPE html> <html> <head> <title>js輪播圖</title> <style type="text/css"> #container{ width: 600px;

Android 實現效果 底部圓點佈局實現

1、準備底部圓點的素材、利用Drawable的功能,去實現一個圓點圖片的展示 drawable下新建兩個Drawable resource file:dot_normal.xml和dot_select.xml dot_normal.xml <?xml vers

Android 實現效果(三) 底部圓點狀態改變

自動輪播和手動輪播之後應該實現圓點的切換 自定義改變圓點狀態的監聽器 新建介面public interface DotChangeListener,新增方法void dotChangeListener(int index);並在ImageBannerFramLayout實

jQuey實現效果

再平常的瀏覽器頁面,輪播圖都是必不可缺少的一個板塊,在這總結了一下輪播圖基本的一些樣式 首先介紹一下,本文實現的輪播圖的基本效果:     1. 3s自動切換圖片,圖片切換時提示點跟隨切換   2. 滑鼠劃到圖片上,自動切換輪播圖停止   3. 指示點劃過切換對應的圖

使用原生js實現效果

這幾天在逛網站的時候,發現很多網站都有輪播圖這個效果,所以我就仿照小米的官網用原生js寫了一個輪播圖效果,希望大家喜歡。 這是我釋出在github上的最後實現的效果:https://heternally.github.io/banner/ 下面我簡單跟大家說一下

vue_cli使用swiper外掛實現效果

安裝外掛swipernpm install vue-awesome-swiper --save建立一個banner.vue的檔案在banner.vue裡引用swiperimport VueAwesomeSwiper from 'vue-awesome-swiper'; imp

利用原生js實現效果

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js原生輪播圖</title> <style type="text

js原生實現效果(面向對象編程)

alt 狀態 off wid 編程) .proto eat doc 持續時間 面向對象編程js原生實現輪播圖效果 1.先看效果圖 2.需要實現的功能: 自動輪播 點擊左右箭頭按鈕無縫輪播 點擊數字按鈕切換圖片 分析:如何實現無縫輪播? 在一個固定大小的相框裏有一個ul

python多執行緒的共享資料通過queue實現內有生產者消費者經典模型的示例程式碼

queue:佇列,即先進先出,它有以下幾個方法: 1.判斷佇列的大小:size() 2.向佇列中新增:put() 3.向佇列中取出:get() 4.如果佇列規定了長度,用來判斷是否滿了:full() import threading,time import queu

Android TV利用viewPager實現通過handler進行邏輯控制

    公司要求實現一個輪播圖,滾動圖片及其對應文字。共有五張圖,包含小圓點。     最初的實現是參考了https://blog.csdn.net/zhaoxiaojian1213/article/details/78280132,使用ViewPager實現,新開一個執行

專案實戰之ViewPager+RecycleView實現首頁分頁的導航選單

效果圖 用過美團和餓了麼的app的童鞋應該清楚這一功能。首頁選單可以分頁切換,類似我們的banner廣告切換效果,只不過只能手動切換。所以整個分頁效果,我們可以採用Viewpager實現,裡面的選單項我們則可以採用RecyclerView實現,動態改變裡面的選單

Android 2個Service實現相互保活通過bindservice實現通過廣播實現

1,實現原理:啟動2個Service,相互繫結監聽,當A Service監聽到連線斷開的時候,說明B服務可能被 Kill掉了,這時需要重新開啟A服務,同樣B服務的監聽斷掉了,重新啟動A服務。A,B兩個服務都是單獨的程序,需要使用AIDL來通訊。 2,A服務原始碼: public class

AngularJS 通過 radio控制元素的顯示和隱藏以及控制表單元素的 disabled

程式碼如下 <lable> <input type="radio" ng-value="true" name="radio-test" ng-model="radioVal

使用流式佈局實現標籤

我們在開發的時候通常需要加標籤,對於這個標籤怎麼說呢,反正也挺複雜的,最初開發這個標籤的時候還是沒有思路的,後來在github上面查找了一下資料,瞭解了通過流式佈局來實現這個標籤,我記得開始的時候我寫標籤的時候是三個TextView一個一個新增進去的,後來感覺還是不太好,所