千变万化的ViewPager指示器-MagicIndicator

举报
再见孙悟空_ 发表于 2022/01/12 22:47:33 2022/01/12
【摘要】 作者原文章链接 MagicIndicator系列之一 —— 使用MagicIndicator打造千变万化的ViewPager指示器 MagicIndicator系列之二 —— MagicIndicator使用指南 MagicIndicator系列之三 —— MagicIndicator原理浅析及扩展MagicIndicato...

作者原文章链接

MagicIndicator系列之一 —— 使用MagicIndicator打造千变万化的ViewPager指示器
MagicIndicator系列之二 —— MagicIndicator使用指南
MagicIndicator系列之三 —— MagicIndicator原理浅析及扩展MagicIndicator的4种方式

github地址:https://github.com/hackware1993/MagicIndicator

效果图:

项目实现效果:

重新封装了一个工具类:MagicIndicatorUtil 

参数我不一一说明了,基本都能看懂


  
  1. package com.jky.mobilebzt.util;
  2. import android.content.Context;
  3. import android.graphics.Color;
  4. import android.support.v4.view.ViewPager;
  5. import android.view.View;
  6. import android.view.animation.AccelerateInterpolator;
  7. import android.view.animation.DecelerateInterpolator;
  8. import com.jky.mobilebzt.R;
  9. import net.lucode.hackware.magicindicator.MagicIndicator;
  10. import net.lucode.hackware.magicindicator.ViewPagerHelper;
  11. import net.lucode.hackware.magicindicator.buildins.UIUtil;
  12. import net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator;
  13. import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter;
  14. import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator;
  15. import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView;
  16. import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator;
  17. import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.SimplePagerTitleView;
  18. public class MagicIndicatorUtil {
  19. public static void initMagicIndicator(View view, Context context, String[] titleArray, ViewPager mPager,MagicIndicator magicIndicator) {
  20. magicIndicator.setBackgroundColor(Color.parseColor("#fafafa"));
  21. CommonNavigator commonNavigator7 = new CommonNavigator(context);
  22. commonNavigator7.setScrollPivotX(0.65f);
  23. commonNavigator7.setAdjustMode(true);
  24. commonNavigator7.setAdapter(new CommonNavigatorAdapter() {
  25. @Override
  26. public int getCount() {
  27. return titleArray == null ? 0 : titleArray.length;
  28. }
  29. @Override
  30. public IPagerTitleView getTitleView(Context context, final int index) {
  31. SimplePagerTitleView simplePagerTitleView = new SimplePagerTitleView(context);
  32. simplePagerTitleView.setText(titleArray[index]);
  33. simplePagerTitleView.setNormalColor(Color.parseColor("#9e9e9e"));
  34. simplePagerTitleView.setSelectedColor(context.getResources().getColor(R.color.color_green));
  35. simplePagerTitleView.setOnClickListener(new View.OnClickListener() {
  36. @Override
  37. public void onClick(View v) {
  38. mPager.setCurrentItem(index);
  39. }
  40. });
  41. return simplePagerTitleView;
  42. }
  43. @Override
  44. public IPagerIndicator getIndicator(Context context) {
  45. LinePagerIndicator indicator = new LinePagerIndicator(context);
  46. indicator.setMode(LinePagerIndicator.MODE_EXACTLY);
  47. indicator.setLineHeight(UIUtil.dip2px(context, 3));
  48. indicator.setLineWidth(UIUtil.dip2px(context, 40));
  49. indicator.setRoundRadius(UIUtil.dip2px(context, 2));
  50. indicator.setStartInterpolator(new AccelerateInterpolator());
  51. indicator.setEndInterpolator(new DecelerateInterpolator(2.0f));
  52. indicator.setColors(context.getResources().getColor(R.color.color_green));
  53. return indicator;
  54. }
  55. });
  56. magicIndicator.setNavigator(commonNavigator7);
  57. ViewPagerHelper.bind(magicIndicator, mPager);
  58. }
  59. }

用法:

build.gradle

    implementation 'com.github.hackware1993:MagicIndicator:1.6.0'
 

xml


  
  1. <net.lucode.hackware.magicindicator.MagicIndicator
  2. android:id="@+id/book_indicator"
  3. android:layout_width="match_parent"
  4. android:layout_height="@dimen/margin_45"
  5. android:layout_marginTop="@dimen/margin_5" />

activity中


  
  1. MagicIndicator magicIndicator = view.findViewById(R.id.book_indicator);
  2. MagicIndicatorUtil.initMagicIndicator(view,getActivity(),mBookArray,mSlidePager,magicIndicator);

最后奉劝各位还在用PagerSlidingTabStrip控件的小伙伴 ,尽快替换为MagicIndicator  ,不然你会很痛苦的...

如果帮助到大家了就帮忙点个关注 ,点赞评论支持一下,你们的支持是我持续更新的动力。谢谢大家!!

同时也欢迎各位小伙伴加入我的qq群:开发一群:454430053 开发二群:537532956 开发三群:812695329 和大家一起沟通讨论交流,这里已经有很多小伙伴在等你了,快来加入我们吧!

文章来源: wukong.blog.csdn.net,作者:再见孙悟空_,版权归原作者所有,如需转载,请联系作者。

原文链接:wukong.blog.csdn.net/article/details/115326555

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。