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 ...
随机推荐
- Java--8--新特性--Lambda
java9 都出来了,我才开始接触到java8的新特性,有点脱节啊.. Lambda是一个匿名函数,可以理解为一段可以传递的代码,将代码像数据一样传递,下面是一个小例子. public class E ...
- Django 中使用权限认证
权限认证 权限概念 """ 在实际开发中,项目中都有后台运营站点,运营站点里面会存在多个管理员, 那么不同的管理员会具备不同的任务和能力,那么要实现这样的管理员功能,那么 ...
- 数据库管理工具-Navicat Premium 12
首先感谢下github上大佬,我才能使用这个软件.也可以直接浏览https://github.com/DoubleLabyrinth/navicat-keygen进行安装,非常详细. 1.https: ...
- 基于LPCXpresso54608开发板创建Embedded Wizard UI应用程序
平台集成和构建开发环境:LPCXpresso 54608入门指南 本文主要介绍了创建一个适用于LPCXpresso54608开发板的Embedded Wizard UI应用程序所需的所有必要步骤.请一 ...
- linux网络编程之socket编程(十一)
今天继续学习socket编程,这次主要是学习超时方法的封装,内容如下: ①.alarm[不常用,了解既可] 它的实现思路是这样的: 但是这种方案有一定的问题,因为闹钟可能会作为其它的用途,这时所设置的 ...
- 遍历SQL SERVER中所有存储过程和触发器
如果需要查找某个存储过程或触发器中是否含有某段文本(比如:你想知道有哪些存储过程操作了某个表) 可以这么写 select name from sysobjects o, syscomments s w ...
- 【邻接矩阵+基础BFS】PAT-L3-008. 喊山
L3-008. 喊山 一个山头呼喊的声音可以被临近的山头同时听到.题目假设每个山头最多有两个能听到它的临近山头.给定任意一个发出原始信号的山头,本题请你找出这个信号最远能传达到的地方.[何为最远?大致 ...
- P2P system: Napster
Napster structure client machines之所以叫peers是因为对于server来说这些machines是平等对待的 当你upload一首歌曲如PennyLane.mp3时, ...
- matlab(4) Logistic regression:求θ的值使用fminunc / 画decision boundary(直线)plotDecisionBoundary
画decision boundary(直线) %% ============= Part 3: Optimizing using fminunc =============% In this exer ...
- java中的volatile变量
同步与线程间通信: 通信 通信是指消息在两条线程之间传递. 既然要传递消息,那接收线程 和 发送线程之间必须要有个先后关系,此时就需要用到同步.通信和同步是相辅相成的. 同步 同步是指,控制多条线程之 ...