欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android使用viewpager實(shí)現(xiàn)自動(dòng)無(wú)限輪播圖

 更新時(shí)間:2018年06月08日 11:27:31   作者:_淡然_花落_  
這篇文章主要介紹了Android使用viewpager實(shí)現(xiàn)自動(dòng)無(wú)限輪播圖效果,實(shí)現(xiàn)方法大概有兩種,一種是viewpager+作為游標(biāo)的點(diǎn) 。另外一種是重寫viewpager,具體實(shí)現(xiàn)過(guò)程大家參考下本文

1、具體步驟

     說(shuō)下大概實(shí)現(xiàn)步驟,一般我們有兩種,一種是viewpager+作為游標(biāo)的點(diǎn) 。另外一種是重寫viewpager。

       效果圖:

1.1 布局,直接viewpager+一個(gè)viewgroup就好。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  xmlns:tools="http://schemas.android.com/tools" 
  android:layout_width="match_parent" 
  android:layout_height="match_parent" 
  tools:context="com.maxence.viewpager.MainActivity" > 
  <RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="220dp" > 
    <android.support.v4.view.ViewPager 
      android:id="@+id/vp_pager" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 
      <!-- 作為viewgroup 動(dòng)態(tài) add 游標(biāo) --> 
      <LinearLayout 
        android:id="@+id/ll_container" 
        android:layout_width="match_parent" 
        android:layout_height="30dp" 
        android:gravity="center" 
        android:orientation="horizontal" 
        android:layout_alignParentBottom="true" 
        ></LinearLayout> 
  </RelativeLayout> 
</RelativeLayout> 

 1.2 動(dòng)態(tài)add的點(diǎn),常規(guī)白點(diǎn):point_normal.xml。

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"  
   android:shape="oval"> 
  <stroke 
    android:width="1dip" 
    android:color="#ffffff"/> 
  <solid android:color="#ffffff" /> 
</shape> 

   選中為紅點(diǎn): point_select.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"  
  android:shape="oval"> 
  <stroke  
    android:width="1dp" 
    android:color="#ff0000" 
    /> 
  <solid android:color="#ff0000"/> 
</shape> 

1.3動(dòng)態(tài)添加進(jìn)去圖片和游標(biāo)點(diǎn)。

 /** 
   * 初始化數(shù)據(jù) 
   */ 
  private void initData() { 
    mContext = this; 
    int[] i = new int[] { R.drawable.bg_lunbo1, R.drawable.bg_lunbo2, R.drawable.bg_lunbo3, R.drawable.bg_lunbo4 }; 
    al = new ArrayList<ImageView>(); 
    for (int x = 0; x < i.length; x++) { 
      ImageView iv = new ImageView(mContext); 
      iv.setBackgroundResource(i[x]); 
      al.add(iv); 
      View v=new View(mContext); 
      v.setBackgroundResource(R.drawable.point_normal); 
      //有多少?gòu)垐D就放置幾個(gè)點(diǎn) 
      LayoutParams layoutParams = new LinearLayout.LayoutParams(15, 15);  
            layoutParams.leftMargin = 30;  
      ll_container.addView(v,layoutParams); 
    } 
    vp_pager.setAdapter(new Myadapter()); 
    vp_pager.setOnPageChangeListener(this); 
    vp_pager.setCurrentItem(al.size()*1000); //這個(gè)是無(wú)線輪詢的關(guān)鍵 
    ll_container.getChildAt(0).setBackgroundResource(R.drawable.point_select); 
    prePosition=0; 
  } 

1.4 viewpgaer綁定PagerAdapter,這樣就能滑動(dòng)照片并且無(wú)限滑了。

class Myadapter extends PagerAdapter { 
    @Override 
    public int getCount() { 
      return Integer.MAX_VALUE; // 要無(wú)限輪播 
    } 
    @Override 
    public boolean isViewFromObject(View arg0, Object arg1) { 
      return arg0 == arg1; 
    } 
    @Override 
    public Object instantiateItem(ViewGroup container, int position) { 
        int position1=position % al.size();    
        ImageView imageView = al.get(position1); 
        container.addView(imageView); 
        return imageView; 
    } 
    @Override 
    public void destroyItem(ViewGroup container, int position, Object object) { 
      container.removeView((View)object); 
    } 
  } 

1.5 實(shí)現(xiàn)游標(biāo),就是滑動(dòng)圖片,下面的紅點(diǎn)也跟著變化。

vp_pager.setOnPageChangeListener(this); 

@Override 
public void onPageScrollStateChanged(int arg0) { 
} 
@Override 
public void onPageScrolled(int arg0, float arg1, int arg2) { 
} 
@Override 
public void onPageSelected(int position) { 
   int newPosition = position % al.size();  
   ll_container.getChildAt(newPosition).setBackgroundResource(R.drawable.point_select); 
   ll_container.getChildAt(prePosition).setBackgroundResource(R.drawable.point_normal); 
   prePosition=newPosition; 
} 

1.6實(shí)現(xiàn)自動(dòng)輪詢。開啟一個(gè)線程即可。

/** 
   * 自動(dòng)輪詢 
   */ 
  private void pollint() { 
   pThread = new PollThread(); 
   pThread.start(); 
  } 
class PollThread extends Thread{ 
    @Override 
    public void run() { 
      while (poll){          
                try { 
          Thread.sleep(2000); 
        } catch (InterruptedException e) { 
          e.printStackTrace(); 
        } 

runOnUiThread(new Runnable() {@Overridepublic void run() {vp_pager.setCurrentItem(vp_pager.getCurrentItem()+1);}});}}}這樣就搞定了,僅僅提供一個(gè)思路。自己可以擴(kuò)展,例如重寫viewpager,把功能封裝在內(nèi)部即可。

總結(jié)

以上所述是小編給大家介紹的Android使用viewpager實(shí)現(xiàn)自動(dòng)無(wú)限輪播圖,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Android自定義View實(shí)現(xiàn)天氣預(yù)報(bào)折線圖

    Android自定義View實(shí)現(xiàn)天氣預(yù)報(bào)折線圖

    這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)天氣預(yù)報(bào)折線圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Flutter自定義年月日倒計(jì)時(shí)

    Flutter自定義年月日倒計(jì)時(shí)

    這篇文章主要為大家詳細(xì)介紹了Flutter自定義年月日倒計(jì)時(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Android中home鍵和back鍵區(qū)別實(shí)例分析

    Android中home鍵和back鍵區(qū)別實(shí)例分析

    這篇文章主要介紹了Android中home鍵和back鍵區(qū)別,以實(shí)例形式較為詳細(xì)的分析并總結(jié)了home鍵和back鍵區(qū)別及使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • android開發(fā)仿ios的UIScrollView實(shí)例代碼

    android開發(fā)仿ios的UIScrollView實(shí)例代碼

    下面小編就為大家分享一篇android開發(fā)仿ios的UIScrollView實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • Android強(qiáng)制下線功能實(shí)現(xiàn)的代碼示例

    Android強(qiáng)制下線功能實(shí)現(xiàn)的代碼示例

    本篇文章主要介紹了Android強(qiáng)制下線功能實(shí)現(xiàn)的代碼示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • Android實(shí)現(xiàn)圓角ListView效果

    Android實(shí)現(xiàn)圓角ListView效果

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)圓角ListView效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • Android 桌面圖標(biāo)右上角顯示未讀消息數(shù)字

    Android 桌面圖標(biāo)右上角顯示未讀消息數(shù)字

    本文主要介紹了Android 桌面圖標(biāo)右上角顯示未讀消息數(shù)字的方法。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-04-04
  • Android應(yīng)用獲取設(shè)備序列號(hào)的方法

    Android應(yīng)用獲取設(shè)備序列號(hào)的方法

    本篇文章主要介紹了Android應(yīng)用獲取設(shè)備序列號(hào)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • Android Studio開發(fā)中Gradle各種常見報(bào)錯(cuò)問(wèn)題解決方案

    Android Studio開發(fā)中Gradle各種常見報(bào)錯(cuò)問(wèn)題解決方案

    這篇文章主要為大家介紹了Android Studio開發(fā)中Gradle各種常見報(bào)錯(cuò)問(wèn)題解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Android設(shè)計(jì)模式系列之單例模式

    Android設(shè)計(jì)模式系列之單例模式

    單例模式,可以說(shuō)是GOF的23種設(shè)計(jì)模式中最簡(jiǎn)單的一個(gè)。接下來(lái)通過(guò)本文給大家實(shí)例講解android設(shè)計(jì)模式系列之單例模式的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2016-09-09

最新評(píng)論