900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 千变万化的ViewPager指示器-MagicIndicator

千变万化的ViewPager指示器-MagicIndicator

时间:2020-01-19 17:58:54

相关推荐

千变万化的ViewPager指示器-MagicIndicator

作者原文章链接

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和大家一起沟通讨论交流,这里已经有很多小伙伴在等你了,快来加入我们吧!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。