千变万化的ViewPager指示器-MagicIndicator
2023-03-07 09:08:14 时间
作者原文章链接
MagicIndicator系列之一 —— 使用MagicIndicator打造千变万化的ViewPager指示器 MagicIndicator系列之二 —— MagicIndicator使用指南 MagicIndicator系列之三 —— MagicIndicator原理浅析及扩展MagicIndicator的4种方式
github地址:https://github.com/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.magicindicator.buildins.commonnavigator.CommonNavigator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.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() {
@Override
public int getCount() {
return titleArray == null ? 0 : titleArray.length;
}
@Override
public 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() {
@Override
public void onClick(View v) {
mPager.setCurrentItem(index);
}
});
return simplePagerTitleView;
}
@Override
public 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.MagicIndicator
android: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 ,不然你会很痛苦的...
相关文章
- 俄乌网络战中的秘密武器TOP 10 | FreeBuf年度盘点
- PROTAC 技术靶向降解 BTK | MedChemExpress
- NetSupport RAT 正利用精灵宝可梦游戏作为诱饵传播
- 如何使用PXEThief从Microsoft终端配置管理器中提取密码
- 英国多所学校数据遭大规模泄露,教育行业成勒索软件的主目标
- MacOS风险排查怎么做;春节安全值守怎么安排 | FB甲方群话题讨论
- Villain:一款针对Windows和Linux的后门生成和多会话处理工具
- 无需感染加载 Emotet 模块的分析工具:EmoLoad
- RedWarden:一款功能强大的Cobalt Strike C2反向代理
- 高通骁龙通告22个安全漏洞,联想、微软和三星设备受影响
- 刚被美国政府禁止,Tiktok 又遭遇欧盟隐私保护难题?
- bkcrack:一款基于已知明文攻击的传统zip加密破解工具
- 不仅仅是安全左移,DevSecOps发展历程背后的安全指引 | FreeBuf咨询洞察
- SocialFish:一款功能强大的网络钓鱼测试与信息收集工具
- 2023年网络安全趋势预测TOP 20 | FreeBuf年度盘点
- nmap_vulners:一个使用已知服务信息提供漏洞数据的强大NSE脚本
- 技术分享|终端安全防护|ChatGPT会创造出超级恶意软件吗?
- 小米全球副总裁离职,曾带队将小米手机销量做成印度第一
- 如何使用Wavecrack配合hashcat实现密码破解
- “卷”到海外!教你实现海外语聊社交