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

首頁 > 系統(tǒng) > Android > 正文

Android開發(fā)使用Handler的PostDelayed方法實(shí)現(xiàn)圖片輪播功能

2019-12-12 01:28:29
字體:
供稿:網(wǎng)友

本文實(shí)例講述了Android開發(fā)使用Handler的PostDelayed方法實(shí)現(xiàn)圖片輪播功能。分享給大家供大家參考,具體如下:

第一步:創(chuàng)建MainActivity類

public class BaseActivity extends ActionBarActivity {    private List<String> mDatas;    private ViewPager mViewPager;    private boolean isRun = false;    private AutoRunTask mTask;    @Override    protected void onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      mViewPager = new ViewPager(this);      mViewPager.setLayoutParams(new AbsListView.LayoutParams(LayoutParams.MATCH_PARENT, Util        .getDimen(R.dimen.home_pic_height)));      mViewPager.setAdapter(new HomePagerAdapter());      // 設(shè)置滑動的初始位置      mViewPager.setCurrentItem(1000 * mDatas.size());      mViewPager.setOnTouchListener(this);      mTask = new AutoRunTask();      mTask.start();    }    @Override    public boolean onTouch(View v, MotionEvent event) {      switch (event.getAction()) {      case MotionEvent.ACTION_DOWN:        mTask.stop();        break;      case MotionEvent.ACTION_UP:      case MotionEvent.ACTION_CANCEL:        mTask.start();        break;      default:        break;      }      return false; //viewpager必須是false,如果是true是就不能移動    }}

第二步:創(chuàng)建無限循環(huán)的PagerAdaper

class HomePagerAdapter extends PagerAdapter {    // 使用此對imageView進(jìn)行復(fù)用    private LinkedList<ImageView> convertViews = new LinkedList<ImageView>();    @Override    public int getCount() {      // return mPicUrls.size();      return Integer.MAX_VALUE; // 可以無線滑動    }    @Override    public boolean isViewFromObject(View arg0, Object arg1) {      return arg0 == arg1;    }    @Override    public void destroyItem(ViewGroup container, int position, Object object) {      if (object != null && object instanceof ImageView) {        ImageView imageView = (ImageView) object;        // 添加到集合里        convertViews.add(imageView);        container.removeView(imageView);      }      super.destroyItem(container, position, object);    }    @Override    public Object instantiateItem(ViewGroup container, int position) {      // position 因為無線大,所以      int index = position % mDatas.size();      ImageView imageView = null;      if (convertViews != null && convertViews.size() > 0) {        // 取出一個imageView        imageView = convertViews.remove(0);      } else {        imageView = new ImageView(Util.getContext());      }      String uri = HttpHelper.URL + "image?name=" + mDatas.get(index);      mBitmapUtils.display(imageView, uri);      container.addView(imageView);      return imageView;    }}

第三步:使用handler創(chuàng)建輪播類

public class AutoRunTask extends Handler implements Runnable {  @Override  public void run() {    while (isRun) {      removeCallbacks(this);      int currentItem = mViewPager.getCurrentItem();      currentItem++;      mViewPager.setCurrentItem(currentItem);      postDelayed(this, 2000);    }  }  public void start() {    if (!isRun) {      removeCallbacks(this);      isRun = true;      postDelayed(this, 2000);    }  }  public void stop() {    if (isRun) {      isRun = false;      removeCallbacks(this);    }  }}

更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android圖形與圖像處理技巧總結(jié)》、《Android開發(fā)入門與進(jìn)階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)

希望本文所述對大家Android程序設(shè)計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 乌恰县| 科技| 浦县| 寿光市| 澜沧| 蕲春县| 彭水| 连平县| 灵寿县| 宁海县| 绥宁县| 德格县| 读书| 芜湖市| 赤城县| 财经| 潮安县| 宣城市| 赣州市| 沙田区| 汉寿县| 临沧市| 武陟县| 贺兰县| 黄浦区| 仁化县| 顺义区| 武宣县| 花莲市| 乌兰察布市| 太保市| 和田市| 巫山县| 平乐县| 商都县| 乃东县| 调兵山市| 邮箱| 鱼台县| 遂宁市| 巩义市|