Android仿微信底部选项卡
第一步 添加依赖
dependencies {
compile 'com.yinglan.alphatabs:library:1.0.5'
}
第二步 布局使用
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
tools:context=".hometype.FragmentViewPagerActivity"> <android.support.v4.view.ViewPager
android:id="@+id/vp_home"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<TextView
android:id="@+id/tv_line"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_above="@+id/rl_bottom"
android:background="@color/light_gray"
/> <RelativeLayout
android:id="@+id/rl_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="#fff"
android:paddingBottom="2dp"
android:paddingTop="4dp">
<com.yinglan.alphatabs.AlphaTabsIndicator
android:id="@+id/alphaIndicator"
android:layout_width="match_parent"
android:layout_height="55dp"
android:orientation="horizontal"> <com.yinglan.alphatabs.AlphaTabView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:padding="5dp"
android:id="@+id/alphaTabView"
app:tabIconNormal="@drawable/student_icon"
app:tabIconSelected="@drawable/student_icon_show"
app:tabText="页面一"
app:tabTextSize="14sp"
app:textColorNormal="@color/gray"
app:textColorSelected="@color/base_color"
app:badgeBackgroundColor="@color/color_primary_red"/>
<com.yinglan.alphatabs.AlphaTabView android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:padding="5dp" app:tabIconNormal="@drawable/home_drive"
app:tabIconSelected="@drawable/home_drive_light"
app:tabText="页面二"
app:tabTextSize="14sp"
app:textColorNormal="@color/gray"
app:textColorSelected="@color/base_color"
/> <com.yinglan.alphatabs.AlphaTabView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:padding="5dp"
app:tabIconNormal="@drawable/order_iocn"
app:tabIconSelected="@drawable/order_iocn_show"
app:tabText="页面三"
app:tabTextSize="14sp"
app:textColorNormal="@color/gray"
app:textColorSelected="@color/base_color"
/>
</com.yinglan.alphatabs.AlphaTabsIndicator>
</RelativeLayout>
</RelativeLayout>
说明
| 配置参数 | 参数含义 |
|---|---|
| tabIconNormal | 未选中的图标 |
| tabIconSelected | 已经选中的图标 |
| tabText | tab标签的文字 |
| tabTextSize | tab标签的文字大小 |
| textColorNormal | 未选中的文字颜色 |
| textColorSelected | 已选中的文字颜色 |
| badgeBackgroundColor | 角标背景色,默认红色 |
第三步 代码编写:
import android.support.v4.view.ViewPager;
import android.view.View; import com.loaderman.samplecollect.R;
import com.loaderman.samplecollect.activity.BaseActivity;
import com.loaderman.samplecollect.adapter.MyPagerAdapter;
import com.loaderman.samplecollect.constants.FragmentNameTagConstants;
import com.yinglan.alphatabs.AlphaTabView;
import com.yinglan.alphatabs.AlphaTabsIndicator;
import com.yinglan.alphatabs.OnTabChangedListner; public class FragmentViewPagerActivity extends BaseActivity implements View.OnClickListener { private ViewPager vpHome;
private AlphaTabView mAlphaTabView; @Override
public int getLayout() {
return R.layout.activity_fragment_view_pager2;
} @Override
public void initView() {
ivLeft.setVisibility(View.GONE);
vpHome = (ViewPager) findViewById(R.id.vp_home);
AlphaTabsIndicator mAlphaTabsIndicator = findViewById(R.id.alphaIndicator);
mAlphaTabView = findViewById(R.id.alphaTabView);
vpHome.setOffscreenPageLimit(5);
MyPagerAdapter homeAdapter = new MyPagerAdapter(getSupportFragmentManager());
vpHome.setAdapter(homeAdapter);
mAlphaTabsIndicator.setViewPager(vpHome);
// mAlphaTabView.showNumber(55); //显示数字角标
mAlphaTabView.showPoint(); //显示小红点
// mAlphaTabView.removeShow(); //移除当前角标
mAlphaTabsIndicator.setOnTabChangedListner(new OnTabChangedListner() {
@Override
public void onTabSelected(int tabNum) {
updateTitleBar(tabNum);
}
}); //设置底部tab点击监听
mAlphaTabsIndicator.setTabCurrenItem(0); //设置tab选项
updateTitleBar(FragmentNameTagConstants.HOME_0_TAG);
// mAlphaTabsIndicator.removeAllBadge(); //移除所有tab的角标
} private void updateTitleBar(int position) {
switch (position) {
case FragmentNameTagConstants.HOME_0_TAG:
tvCenter.setText(getResources().getString(R.string.home_0));
mAlphaTabView.showNumber(555); //显示数字角标
break;
case FragmentNameTagConstants.HOME_1_TAG:
tvCenter.setText(getResources().getString(R.string.home_1)); break;
case FragmentNameTagConstants.HOME_2_TAG:
tvCenter.setText(getResources().getString(R.string.home_2));
break;
}
} @Override
public void initData() { } @Override
public void initListener() { vpHome.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override
public void onPageSelected(int position) { updateTitleBar(position);
} @Override
public void onPageScrollStateChanged(int state) { }
});
} @Override
public void initNetConnectionOkData() { } @Override
public void initNetConnectionErrData() { } @Override
public void onClick(View view) {
int position = (Integer) view.getTag();
// 点击底部某一项的时候将ViewPager切换到那个界面
vpHome.setCurrentItem(position, false);
updateTitleBar(position);
}
}
效果图

Android仿微信底部选项卡的更多相关文章
- Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等
仿照微信,朋友圈分享图片功能 .可以进行图片的多张选择,拍照添加图片,以及进行图片的预览,预览时可以进行缩放,并且可以删除选中状态的图片 .很不错的源码,大家有需要可以下载看看 . 微信 微信 微信 ...
- Android 仿微信小视频录制
Android 仿微信小视频录制 WechatShortVideo和WechatShortVideo文章
- Android仿微信界面
效果图 原理介绍 1.先绘制一个颜色(例如:粉红) 2.设置Mode=DST_IN 3.绘制我们这个可爱的小机器人 回答我,显示什么,是不是显示交集,交集是什么?交集是我们的小机器人的非透明区域,也就 ...
- Android仿微信拍摄短视频
近期做项目需要添加上传短视频功能,功能设置为类似于微信,点击开始拍摄,设置最长拍摄时间,经过研究最终实现了这个功能,下面就和大家分享一下,希望对你有帮助. 1.视频录制自定义控件: /** * 视频播 ...
- android仿微信红包动画、Kotlin综合应用、Xposed模块、炫酷下拉视觉、UC浏览器滑动动画等源码
Android精选源码 仿微信打开红包旋转动画 使用Kotlin编写的Android应用,内容你想象不到 Android手机上的免Root Android系统日志Viewer 一个能让微信 Mater ...
- Android UI-仿微信底部导航栏布局
现在App基本的标配除了侧滑菜单,还有一个就是底部导航栏,常见的聊天工具QQ,微信,购物App都有底部导航栏,用户可以随便切换看不同的内容,说是情怀也好,用户体验也罢.我们开发的主要的还是讲的是如何如 ...
- Android仿微信高效压缩图片(libjpeg)
用过ios手机的同学应该很明显感觉到,ios拍照1M的图片要比安卓拍照排出来的5M的图片还要清晰.这是为什么呢? 这得了解android底层是如何对图片进行处理的. 当时谷歌开发Android的时候, ...
- Android 仿微信朋友圈添加图片
github地址(欢迎下载Demo) https://github.com/zhouxu88/WXCircleAddPic 老习惯,先上图,着急用的朋友,直接带走Demo,先拿来用吧,毕竟老板催的紧, ...
- html css 仿微信底部自己定义菜单
近期几个月一直从事微信开发,从刚開始的懵懂渐渐成长了一点. 今天认为微信底部自己定义菜单,假设能在html的页面上也能显示就好了. 记得曾经看过某个网页有类似效果.查找了该网页的css. ok如今h ...
随机推荐
- 【深度学习】Precision 和 Recall 评价指标理解
1. 四种情况 Precision精确率, Recall召回率,是二分类问题常用的评价指标.混淆矩阵如下: 预测结果为阳性 Positive 预测结果为假阳性 Negative 预测结果是真实的 Tr ...
- 动态规划——python
1.爬楼梯问题一个人爬楼梯,每次只能爬1个或两个台阶,假设有n个台阶,那么这个人有多少种不同的爬楼梯方法 动态规划的状态转移:第 i 个状态的方案数和第 i-1, i-2时候的状态有关,即:dp[i] ...
- JS获取当前月份的最后一天
<button onclick="function_name()">获取当前月份的最后一天</button> <script type="t ...
- python自动化
自动化测试一些问题 什么是自动化测试? 自动化测试,顾名思义,自动完成测试工作.通过一些自动化测试工具或自己造轮子实现模拟之前人工点点/写写的工作并验证其结果完成整个测试过程,这样的测试过程,便是自动 ...
- MySQL进阶11--DDL数据库定义语言--库创建/修改/删除--表的创建/修改/删除/复制
/*进阶 11 DDL 数据库定义语言 库和表的管理 一:库的管理:创建/修改/删除 二:表的管理:创建/修改/删除 创建: CREATE DATABASE [IF NOT EXISTS] 库名; 修 ...
- unittest单元测试笔记
单元测试 unittest单元测试是基于java的JUnit思想框架开发出来的测试框架 import unittest import HTMLTestRunner class Mytest1(unit ...
- PL/SQL块与表达式
一.块(Block) 是PL/SQL的基本执行单元,由定义部分,执行部分(必须)和例外处理部分组成. Declare /*定义部分――定义常量.变量.游标.例外.复杂数据类型*/ Begin /*执行 ...
- ModelAndView返回Json格式的数据
第一种方式: 1.自定义类JacksonUtil.java,类中实现tojson方法(即将数据转成json类型): 2.自定义类JsonView 继承 AbstractView 3.xml中配置bea ...
- Mac 升级 Python2.7 到 Python3.5
1.去 Python 官网下载一个版本的包 https://www.python.org/downloads/mac-osx/ 2.安装之后,去 /Library/Frameworks/Python ...
- 22 | MySQL有哪些“饮鸩止渴”提高性能的方法?
不知道你在实际运维过程中有没有碰到这样的情景:业务高峰期,生产环境的MySQL压力太大,没法正常响应,需要短期内.临时性地提升一些性能. 我以前做业务护航的时候,就偶尔会碰上这种场景.用户的开发负责人 ...