PageFragment.java 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. package com.example.zhpan.circleviewpager.fragment;
  2. import android.media.MediaPlayer;
  3. import android.net.Uri;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.widget.MediaController;
  7. import android.widget.RadioButton;
  8. import android.widget.RadioGroup;
  9. import android.widget.VideoView;
  10. import com.example.zhpan.circleviewpager.R;
  11. import com.example.zhpan.circleviewpager.adapter.ImageResourceAdapter;
  12. import com.example.zhpan.circleviewpager.viewholder.ImageResourceViewHolder;
  13. import com.zhpan.bannerview.BannerViewPager;
  14. import com.zhpan.bannerview.annotation.APageStyle;
  15. import com.zhpan.bannerview.constants.PageStyle;
  16. import com.zhpan.bannerview.utils.BannerUtils;
  17. import com.zhpan.idea.utils.ToastUtils;
  18. import com.zhpan.indicator.enums.IndicatorSlideMode;
  19. /**
  20. * Created by zhpan on 2018/7/24.
  21. */
  22. public class PageFragment extends BaseFragment {
  23. private BannerViewPager<Integer, ImageResourceViewHolder> mViewPager;
  24. private RadioGroup mRadioGroupPageStyle;
  25. private RadioButton radioButton;
  26. private VideoView mVideoView;
  27. @Override
  28. protected int getLayout() {
  29. return R.layout.fragment_find;
  30. }
  31. public static PageFragment getInstance() {
  32. return new PageFragment();
  33. }
  34. @Override
  35. protected void initTitle() {
  36. }
  37. @Override
  38. public void onPause() {
  39. super.onPause();
  40. if (mViewPager != null) {
  41. mViewPager.stopLoop();
  42. }
  43. }
  44. @Override
  45. public void onResume() {
  46. super.onResume();
  47. if (mViewPager != null) {
  48. mViewPager.startLoop();
  49. }
  50. }
  51. @Override
  52. protected void initView(Bundle savedInstanceState, View view) {
  53. mViewPager = view.findViewById(R.id.banner_view);
  54. mRadioGroupPageStyle = view.findViewById(R.id.rg_page_style);
  55. radioButton = view.findViewById(R.id.rb_multi_page);
  56. mViewPager
  57. .setIndicatorSlideMode(IndicatorSlideMode.NORMAL)
  58. .setIndicatorSliderColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
  59. .setIndicatorSliderRadius(getResources().getDimensionPixelOffset(R.dimen.dp_4), getResources().getDimensionPixelOffset(R.dimen.dp_5))
  60. .setOnPageClickListener(position -> ToastUtils.show("position:" + position))
  61. .setAdapter(new ImageResourceAdapter(getResources().getDimensionPixelOffset(R.dimen.dp_8)))
  62. .setInterval(5000);
  63. initRadioGroup();
  64. }
  65. private void initRadioGroup() {
  66. mRadioGroupPageStyle.setOnCheckedChangeListener((group, checkedId) -> {
  67. switch (checkedId) {
  68. case R.id.rb_multi_page:
  69. setupBanner(PageStyle.MULTI_PAGE);
  70. break;
  71. case R.id.rb_multi_page_scale:
  72. setupBanner(PageStyle.MULTI_PAGE_SCALE);
  73. break;
  74. case R.id.rb_multi_page_overlap:
  75. setupBanner(PageStyle.MULTI_PAGE_OVERLAP);
  76. break;
  77. case R.id.rb_qq_music_style:
  78. setNetEaseMusicStyle();
  79. break;
  80. }
  81. });
  82. radioButton.performClick();
  83. }
  84. private void setupBanner(@APageStyle int pageStyle) {
  85. mViewPager
  86. .setPageMargin(getResources().getDimensionPixelOffset(R.dimen.dp_20))
  87. .setRevealWidth(getResources().getDimensionPixelOffset(R.dimen.dp_10))
  88. .setPageStyle(pageStyle)
  89. .create(getPicList(4));
  90. }
  91. // 仿QQ音乐的Banner
  92. private void setNetEaseMusicStyle() {
  93. mViewPager
  94. .setPageMargin(getResources().getDimensionPixelOffset(R.dimen.dp_15))
  95. .setRevealWidth(BannerUtils.dp2px(0))
  96. .setPageStyle(PageStyle.MULTI_PAGE)
  97. .setIndicatorSliderColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
  98. .setOnPageClickListener(position -> ToastUtils.show("position:" + position))
  99. .setInterval(5000).create(getPicList(4));
  100. }
  101. }