作者原文章链接
MagicIndicator系列之一 ——使用MagicIndicator打造千变万化的ViewPager指示器
MagicIndicator系列之二 —— MagicIndicator使用指南
MagicIndicator系列之三 —— MagicIndicator原理浅析及扩展MagicIndicator的4种方式
github地址:/hackware1993/MagicIndicator
效果图:
项目实现效果:
重新封装了一个工具类:MagicIndicatorUtil
参数我不一一说明了,基本都能看懂
package com.jky.mobilebzt.util;import android.content.Context;import android.graphics.Color;import android.support.v4.view.ViewPager;import android.view.View;import android.view.animation.AccelerateInterpolator;import android.view.animation.DecelerateInterpolator;import com.jky.mobilebzt.R;import net.lucode.hackware.magicindicator.MagicIndicator;import net.lucode.hackware.magicindicator.ViewPagerHelper;import net.lucode.hackware.magicindicator.buildins.UIUtil;import net.lucode.hackware.monNavigator;import net.lucode.hackware.monNavigatorAdapter;import net.lucode.hackware.monnavigator.abs.IPagerIndicator;import net.lucode.hackware.monnavigator.abs.IPagerTitleView;import net.lucode.hackware.monnavigator.indicators.LinePagerIndicator;import net.lucode.hackware.monnavigator.titles.SimplePagerTitleView;public class MagicIndicatorUtil {public static void initMagicIndicator(View view, Context context, String[] titleArray, ViewPager mPager,MagicIndicator magicIndicator) {magicIndicator.setBackgroundColor(Color.parseColor("#fafafa"));CommonNavigator commonNavigator7 = new CommonNavigator(context);commonNavigator7.setScrollPivotX(0.65f);commonNavigator7.setAdjustMode(true);commonNavigator7.setAdapter(new CommonNavigatorAdapter() {@Overridepublic int getCount() {return titleArray == null ? 0 : titleArray.length;}@Overridepublic IPagerTitleView getTitleView(Context context, final int index) {SimplePagerTitleView simplePagerTitleView = new SimplePagerTitleView(context);simplePagerTitleView.setText(titleArray[index]);simplePagerTitleView.setNormalColor(Color.parseColor("#9e9e9e"));simplePagerTitleView.setSelectedColor(context.getResources().getColor(R.color.color_green));simplePagerTitleView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {mPager.setCurrentItem(index);}});return simplePagerTitleView;}@Overridepublic IPagerIndicator getIndicator(Context context) {LinePagerIndicator indicator = new LinePagerIndicator(context);indicator.setMode(LinePagerIndicator.MODE_EXACTLY);indicator.setLineHeight(UIUtil.dip2px(context, 3));indicator.setLineWidth(UIUtil.dip2px(context, 40));indicator.setRoundRadius(UIUtil.dip2px(context, 2));indicator.setStartInterpolator(new AccelerateInterpolator());indicator.setEndInterpolator(new DecelerateInterpolator(2.0f));indicator.setColors(context.getResources().getColor(R.color.color_green));return indicator;}});magicIndicator.setNavigator(commonNavigator7);ViewPagerHelper.bind(magicIndicator, mPager);}}
用法:
build.gradle
implementation 'com.github.hackware1993:MagicIndicator:1.6.0'
xml
<net.lucode.hackware.magicindicator.MagicIndicatorandroid:id="@+id/book_indicator"android:layout_width="match_parent"android:layout_height="@dimen/margin_45"android:layout_marginTop="@dimen/margin_5" />
activity中
MagicIndicator magicIndicator = view.findViewById(R.id.book_indicator);MagicIndicatorUtil.initMagicIndicator(view,getActivity(),mBookArray,mSlidePager,magicIndicator);
最后奉劝各位还在用PagerSlidingTabStrip控件的小伙伴 ,尽快替换为MagicIndicator ,不然你会很痛苦的...
如果帮助到大家了就帮忙点个关注 ,点赞评论支持一下,你们的支持是我持续更新的动力。谢谢大家!!
同时也欢迎各位小伙伴加入我的qq群:开发一群:454430053开发二群:537532956开发三群:812695329和大家一起沟通讨论交流,这里已经有很多小伙伴在等你了,快来加入我们吧!