国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

android常見手動和自動輪播圖效果

2019-10-21 21:35:10
字體:
來源:轉載
供稿:網友

本文實例為大家分享了android手動和自動輪播圖效果的具體代碼,供大家參考,具體內容如下

1、準備好需要的輪播圖片,圖片標題(初始化,聲明)。

/**輪播圖片*/  private int[] imageIds=new int[]{      R.drawable.ic_launcher,      R.drawable.simple_player_control_focused_holo,      R.drawable.dot_player1_1,      R.drawable.jt5,  };  /**輪播圖片的標題*/  private String[] titles=new String[]{      "我是一",      "我是二",      "我是三",      "我是四",  };

2、在你要輪播的布局里面加入下面的布局(相當于加入一個控件,看你想放哪里).

 <FrameLayout    android:layout_width="match_parent"    android:layout_height="200dip" >     <android.support.v4.view.ViewPager      android:id="@+id/viewPager"      android:layout_width="match_parent"      android:layout_height="match_parent" />     <LinearLayout      android:layout_width="match_parent"      android:layout_height="35dip"      android:layout_gravity="bottom"      android:background="#33000000"      android:gravity="center"      android:orientation="vertical" >       <TextView        android:id="@+id/title"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="圖片標題"        android:textColor="@android:color/white" />       <LinearLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginTop="3dip"        android:orientation="horizontal" >         <View          android:id="@+id/dot_0"          android:layout_width="5dip"          android:layout_height="5dip"          android:layout_marginLeft="2dip"          android:layout_marginRight="2dip"          android:background="@drawable/dot_focused"/>         <View          android:id="@+id/dot_1"          android:layout_width="5dip"          android:layout_height="5dip"          android:layout_marginLeft="2dip"          android:layout_marginRight="2dip"          android:background="@drawable/dot_normal"/>        <View          android:id="@+id/dot_2"          android:layout_width="5dip"          android:layout_height="5dip"          android:layout_marginLeft="2dip"          android:layout_marginRight="2dip"          android:background="@drawable/dot_normal"/>        <View          android:id="@+id/dot_3"          android:layout_width="5dip"          android:layout_height="5dip"          android:layout_marginLeft="2dip"          android:layout_marginRight="2dip"          android:background="@drawable/dot_normal"/>        </LinearLayout>    </LinearLayout></FrameLayout>

3、把圖片和標題都設置控件里面。

 /**顯示的圖片*/    images = new ArrayList<ImageView>();    for(int i=0;i<imageIds.length;i++){      ImageView imageView = new ImageView(getActivity());      imageView.setBackgroundResource(imageIds[i]);      images.add(imageView);    }     /*顯示的圓點 */    dots = new ArrayList<View>();    dots.add(view.findViewById(R.id.dot_0));    dots.add(view.findViewById(R.id.dot_1));    dots.add(view.findViewById(R.id.dot_2));    dots.add(view.findViewById(R.id.dot_3));    /**輪播的標題*/    title.setText(titles[0]);

4、findViewById到控件布局里面的ViewPager,new 一個ViewpagerAdapter(),通過setOnPageChangeListener的方法來監聽改變

viewPager = (ViewPager) view.findViewById(R.id.viewPager);    adapter = new ViewPagerAdapter();    viewPager.setAdapter(adapter);    viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {      @Override      public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {        title.setText(titles[position]);         dots.get(position).setBackgroundResource(R.drawable.dot_focused);        dots.get(oldPosition).setBackgroundResource(R.drawable.dot_normal);         oldPosition = position;        currentItem = position;      }       @Override      public void onPageSelected(int position) {       }       @Override      public void onPageScrollStateChanged(int state) {       }    });

5、自定義一個ViewPagerAdapter

 /**   * 自定義Adapter   * 內部類   */  private class ViewPagerAdapter extends PagerAdapter {     @Override    public int getCount() {      return images.size();//傳入的數據    }     @Override    public boolean isViewFromObject(View arg0, Object arg1) {      return arg0 == arg1;    }     @Override    public void destroyItem(ViewGroup view, int position, Object object) {      // TODO Auto-generated method stub//     super.destroyItem(container, position, object);//     view.removeView(view.getChildAt(position));//     view.removeViewAt(position);      view.removeView(images.get(position));    }     @Override    public Object instantiateItem(ViewGroup view, int position) {      // TODO Auto-generated method stub      view.addView(images.get(position));      return images.get(position);    } }

6、這些自己看著改主要是線程池,handler,定時輪換

 /**   * 圖片輪播任務   *   */  private class ViewPageTask implements Runnable{     @Override    public void run() {      currentItem = (currentItem + 1) % imageIds.length;      mHandler.sendEmptyMessage(0);    }  }   /**   * 接收子線程傳遞過來的數據   */  private Handler mHandler = new Handler(){    public void handleMessage(android.os.Message msg) {      viewPager.setCurrentItem(currentItem);    };  };  @Override  public void onStop() {    // TODO Auto-generated method stub    super.onStop();    if(scheduledExecutorService != null){      scheduledExecutorService.shutdown();      scheduledExecutorService = null;    }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 侯马市| 托克托县| 沁阳市| 资源县| 磐安县| 木兰县| 抚宁县| 米脂县| 嘉黎县| 镇远县| 和硕县| 仁寿县| 佛学| 长汀县| 琼结县| 抚顺市| 资源县| 吉木乃县| 团风县| 汉源县| 云阳县| 湘阴县| 随州市| 舟山市| 尖扎县| 云南省| 渑池县| 含山县| 拉萨市| 繁昌县| 乌拉特前旗| 临清市| 尉犁县| 沂水县| 盐源县| 麦盖提县| 富川| 宜兰市| 米泉市| 阳朔县| 修水县|