新聞中心
這篇文章將為大家詳細(xì)講解有關(guān)android中怎么實(shí)現(xiàn)一個(gè)自動(dòng)輪播圖效果,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
成都創(chuàng)新互聯(lián)專注于寧德企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),成都商城網(wǎng)站開發(fā)。寧德網(wǎng)站建設(shè)公司,為寧德等地區(qū)提供建站服務(wù)。全流程按需策劃,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
1、準(zhǔn)備好需要的輪播圖片,圖片標(biāo)題(初始化,聲明)。
/**輪播圖片*/ private int[] imageIds=new int[]{ R.drawable.ic_launcher, R.drawable.simple_player_control_focused_holo, R.drawable.dot_player1_1, R.drawable.jt5, }; /**輪播圖片的標(biāo)題*/ private String[] titles=new String[]{ "我是一", "我是二", "我是三", "我是四", };
2、在你要輪播的布局里面加入下面的布局(相當(dāng)于加入一個(gè)控件,看你想放哪里).
3、把圖片和標(biāo)題都設(shè)置控件里面。
/**顯示的圖片*/ images = new ArrayList(); for(int i=0;i (); 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)); /**輪播的標(biāo)題*/ title = (TextView) view.findViewById(R.id.title); title.setText(titles[0]);
4、findViewById到控件布局里面的ViewPager,new 一個(gè)ViewpagerAdapter(),通過(guò)setOnPageChangeListener的方法來(lái)監(jiān)聽改變
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、自定義一個(gè)ViewPagerAdapter
/** * 自定義Adapter * 內(nèi)部類 */ private class ViewPagerAdapter extends PagerAdapter { @Override public int getCount() { return images.size();//傳入的數(shù)據(jù) } @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,定時(shí)輪換
/** * 圖片輪播任務(wù) * */ private class ViewPageTask implements Runnable{ @Override public void run() { currentItem = (currentItem + 1) % imageIds.length; mHandler.sendEmptyMessage(0); } } /** * 接收子線程傳遞過(guò)來(lái)的數(shù)據(jù) */ 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; } }
關(guān)于android中怎么實(shí)現(xiàn)一個(gè)自動(dòng)輪播圖效果就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
分享標(biāo)題:android中怎么實(shí)現(xiàn)一個(gè)自動(dòng)輪播圖效果
鏈接地址:http://fisionsoft.com.cn/article/jdpose.html