Android 輪播焦點圖簡單實現
阿新 • • 發佈:2019-01-31
package com.learn.fei.tiangou.fragment; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.view.ViewPager; import android.support.v4.widget.DrawerLayout; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import com.learn.fei.tiangou.R; import com.learn.fei.tiangou.adapter.MyViewPagerAdapter; import com.learn.fei.tiangou.fragment.homeBannerFragment.Banner1; import com.learn.fei.tiangou.fragment.homeBannerFragment.Banner2; import com.learn.fei.tiangou.fragment.homeBannerFragment.Banner3; import com.learn.fei.tiangou.fragment.homeFragmentPages.HomeCitys; import com.learn.fei.tiangou.fragment.homeFragmentPages.HomeCookBook; import com.learn.fei.tiangou.fragment.homeFragmentPages.HomeFood; import com.learn.fei.tiangou.fragment.homeFragmentPages.HomeImages; import java.util.ArrayList; import java.util.Timer; import java.util.TimerTask; /** * 首頁fragment * Created by fei on 2015/12/15. */ public class HomeFragment extends Fragment implements View.OnClickListener, DrawerLayout.DrawerListener { private View parent; private Button btnFood; private Button btnCookBook; private Button btnImages; private Button btnCity; private DrawerLayout drawleft; private Button btnGoLeft; private LinearLayout leftMenu; private int[] mImgIds; private LayoutInflater mInflater; private LinearLayout btnScroll; private ArrayList<Fragment> arryList; private Banner1 banner1; private Banner2 banner2; private Banner3 banner3; private FragmentManager manager; private ViewPager bannerPager; private Timer timer; private TimerTask task; private int bannerCount = 0; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { parent = LayoutInflater.from(getActivity()).inflate(R.layout.frag_home, container, false); initUI(); initListener(); initBanner(); return parent; } <span style="background-color: rgb(153, 255, 153);">/** * 例項化各個pager頁面和輪播動畫 */ private void initBanner() { //例項化一個arrylist存放fragment arryList = new ArrayList<Fragment>(); //例項化fragment頁面 banner1 = new Banner1(); banner2 = new Banner2(); banner3 = new Banner3(); //fragment新增進arryList arryList.add(banner1); arryList.add(banner2); arryList.add(banner3); manager = getChildFragmentManager(); //呼叫viewpager介面卡 MyViewPagerAdapter myViewPagerAdapter = new MyViewPagerAdapter(manager, getActivity(), arryList); bannerPager.setAdapter(myViewPagerAdapter); bannerPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { initFocus(position); } @Override public void onPageScrollStateChanged(int state) { } }); } /** * 停止時 */ @Override public void onStop() { timer.cancel(); super.onStop(); } /** * 開始是開始一個執行緒 */ @Override public void onStart() { super.onStart(); timer = new Timer(); task = new TimerTask() { @Override public void run() { if (bannerCount<2){ bannerCount++; }else { bannerCount=0; } Message message =mHandler.obtainMessage(); message.what = 1001; message.obj = bannerCount; mHandler.sendMessage(message); } }; timer.schedule(task, 0, 3000); } /** * handler */ private Handler mHandler = new Handler(){ public void handleMessage(Message msg) { if (msg.what == 1001){ int count = (int) msg.obj; initFocus(count); } } }; private void initFocus(int count) { ImageView focusImg0 = (ImageView) parent.findViewById(R.id.focus_img_1); ImageView focusImg1 = (ImageView) parent.findViewById(R.id.focus_img_2); ImageView focusImg2 = (ImageView) parent.findViewById(R.id.focus_img_3); focusImg0.setImageResource(R.drawable.off); focusImg1.setImageResource(R.drawable.off); focusImg2.setImageResource(R.drawable.off); if (count==0){ focusImg0.setImageResource(R.drawable.on); }if (count==1){ focusImg1.setImageResource(R.drawable.on); }if (count==2){ focusImg2.setImageResource(R.drawable.on); } bannerPager.setCurrentItem(count); }</span> /** * 初始化UI */ private void initUI() { btnFood = (Button) parent.findViewById(R.id.btn_home_food); btnCookBook = (Button) parent.findViewById(R.id.btn_home_cook_book); btnImages = (Button) parent.findViewById(R.id.btn_home_images); btnCity = (Button) parent.findViewById(R.id.byn_home_city); btnScroll = (LinearLayout) parent.findViewById(R.id.scroll_go); bannerPager = (ViewPager) parent.findViewById(R.id.banner_pager); leftMenu = (LinearLayout) parent.findViewById(R.id.left_menu_layout); } private void initListener() { btnFood.setOnClickListener(this); btnCookBook.setOnClickListener(this); btnImages.setOnClickListener(this); btnCity.setOnClickListener(this); btnScroll.setOnClickListener(this); } @Override public void onClick(View v) { Intent mIntent = new Intent(); int what = v.getId(); switch (what) { case R.id.btn_home_food: mIntent.setClass(HomeFragment.this.getActivity(), HomeFood.class); startActivity(mIntent); break; case R.id.btn_home_cook_book: mIntent.setClass(HomeFragment.this.getActivity(), HomeCookBook.class); startActivity(mIntent); break; case R.id.btn_home_images: mIntent.setClass(HomeFragment.this.getActivity(), HomeImages.class); startActivity(mIntent); break; case R.id.byn_home_city: mIntent.setClass(HomeFragment.this.getActivity(), HomeCitys.class); startActivity(mIntent); break; } } @Override public void onDrawerSlide(View drawerView, float slideOffset) { } @Override public void onDrawerOpened(View drawerView) { } @Override public void onDrawerClosed(View drawerView) { } @Override public void onDrawerStateChanged(int newState) { } }