在App开发中底部导航栏的应用还是很多的,有时我们需要到底部导航既有图标又有文字,这就要求在点击切换时,未选中的其他图标及相应文字变换成另一种颜色,选中的又是一种颜色,要保证图片和文字的同时改变。

看一下我项目里的运行效果图

        

下面来介绍一种比较简单的方法

首先看主类

import android.app.Activity;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;public class MainActivity extends Activity {// 底部导航栏控件private RadioGroup gadiogroup;private RadioButton radio1, radio2, radio3, radio4;private Drawable drawable_radio1, drawable_radio2, drawable_radio3,drawable_radio4;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initview();}private void initview() {// TODO Auto-generated method stubgadiogroup = (RadioGroup) findViewById(R.id.redio_group);radio1 = (RadioButton) findViewById(R.id.radio1);radio2 = (RadioButton) findViewById(R.id.radio2);radio3 = (RadioButton) findViewById(R.id.radio3);radio4 = (RadioButton) findViewById(R.id.radio4);drawable_radio1 = getResources().getDrawable(R.drawable.xml_radio_main_bg);drawable_radio2 = getResources().getDrawable(R.drawable.xml_radio_tmall_bg);drawable_radio3 = getResources().getDrawable(R.drawable.xml_radio_classification_bg);drawable_radio4 = getResources().getDrawable(R.drawable.xml_radio_shopingbags_bg);Rect rect = new Rect(0, 0, drawable_radio1.getMinimumWidth(),drawable_radio1.getMinimumHeight());drawable_radio1.setBounds(rect);drawable_radio2.setBounds(rect);drawable_radio3.setBounds(rect);drawable_radio4.setBounds(rect);radio1.setCompoundDrawables(null, drawable_radio1, null, null);radio2.setCompoundDrawables(null, drawable_radio2, null, null);radio3.setCompoundDrawables(null, drawable_radio3, null, null);radio4.setCompoundDrawables(null, drawable_radio4, null, null);}}

这句话

Rect rect = new Rect(0, 0, drawable_radio1.getMinimumWidth(),drawable_radio1.getMinimumHeight());

你可以随意改变你图标图片的大小

activity_main文件如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><LinearLayout android:layout_width="fill_parent"android:layout_height="0dp" android:layout_weight="1"android:orientation="vertical">                </LinearLayout><include layout="@layout/bottom_navigation" />
</LinearLayout>

bottom_navigation文件如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#ffffff"android:orientation="vertical" ><Viewandroid:layout_width="fill_parent"android:layout_height="1dp"android:background="#F4692A" /><RadioGroupandroid:id="@+id/redio_group"android:layout_width="match_parent"android:layout_height="50dp"android:layout_centerHorizontal="true"android:background="#ffffff"android:gravity="center_vertical"android:orientation="horizontal"android:weightSum="4" ><RadioButtonandroid:id="@+id/radio1"style="@style/radio_button"android:checked="true"android:singleLine="true"android:text="苹果" /><RadioButtonandroid:id="@+id/radio2"style="@style/radio_button"android:singleLine="true"android:text="橘子" /><RadioButtonandroid:id="@+id/radio3"style="@style/radio_button"android:singleLine="true"android:text="香蕉" /><RadioButtonandroid:id="@+id/radio4"style="@style/radio_button"android:singleLine="true"android:text="菠萝" /></RadioGroup></LinearLayout>

下面列出一个xml_radio_main_bg,因为其他的类似

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_checked="true" android:drawable="@drawable/a2_down"/><item android:state_checked="false" android:drawable="@drawable/a2_on"/>
</selector>

好了,这样就完成了一个底部导航栏,图片+文字

Demo的下载地址是:http://download.csdn.net/detail/shihuiyun/9563621

需要的话可以下载看看

Andriod底部导航栏图片和文字的切换相关推荐

  1. android仿微信的activity平滑水平切换动画,Android实现简单底部导航栏 Android仿微信滑动切换效果...

    Android实现简单底部导航栏 Android仿微信滑动切换效果 发布时间:2020-10-09 19:48:00 来源:脚本之家 阅读:96 作者:丶白泽 Android仿微信滑动切换最终实现效果 ...

  2. Android studio实现底部导航,AndroidStudio制作底部导航栏以及用Fragment实现切换功能...

    前言 大家好,我是 Vic,今天给大家带来AndroidStudio制作底部导航栏以及用Fragment实现切换功能的概述,希望你们喜欢 学习目标 AndroidStudio制作底部导航栏以及用Fra ...

  3. com.ashokvarma.android:bottom-navigation 修改导航栏图片和文字间的距离和文字的大小

    我没引入com.ashokvarma.android:bottom-navigation 的底部导航栏,需要更改图片和文字间的距离和文字的大小,以及取消点击是字体大小的变化! 找到com.ashokv ...

  4. php仿微信底部菜单,Android实现简单底部导航栏 Android仿微信滑动切换效果

    Android仿微信滑动切换最终实现效果: 大体思路: 1. 主要使用两个自定义View配合实现; 底部图标加文字为一个自定义view,底部导航栏为一个载体,根据需要来添加底部图标; 2. 底部导航栏 ...

  5. android滑动菜单图标,Android实现简单底部导航栏 Android仿微信滑动切换效果

    Android仿微信滑动切换最终实现效果: 大体思路: 1. 主要使用两个自定义View配合实现; 底部图标加文字为一个自定义view,底部导航栏为一个载体,根据需要来添加底部图标; 2. 底部导航栏 ...

  6. android 底部滑动效果怎么做,Android实现简单底部导航栏 Android仿微信滑动切换效果...

    android仿微信滑动切换最终实现效果: 大体思路: 1. 主要使用两个自定义view配合实现; 底部图标加文字为一个自定义view,底部导航栏为一个载体,根据需要来添加底部图标; 2. 底部导航栏 ...

  7. android fragment 底部菜单栏,一句话搞定Android底部导航栏,一键绑定Fragment、ViewPager...

    现在大多数App都会用到底部导航栏,比如常见的聊天工具QQ.微信.购物App等等,有了底部导航栏,用户可以随时切换界面,查看不同的内容.它的实现方式也很多,以前大多使用TabHost来实现,但是现在我 ...

  8. Android底部导航栏的四种实现

    现在大多数App都会用到底部导航栏,比如常见的聊天工具QQ.微信,购物App等等,有了底部导航栏,用户可以随时切换界面,查看不同的内容.它的实现方式也很多,以前大多使用TabHost来实现,但是现在我 ...

  9. 微信小程序开发实战基础一、页面跳转,底部导航栏,分享,加载图片标签,列表

    1.页面跳转 wx.navigateTo({ url: "../four/four" })--可返回 wx.redirectTo({ url: "../four/four ...

最新文章

  1. python打开文件_python如何学习
  2. 龙岗网络推广解析有关网站SEO排名上去了,但没实际性点击的问题
  3. 【深度学习】语音识别之CTC算法原理解释与公式推导
  4. oracle 11g r2 rac中节点时间不同步,Oracle11gR2安装RAC错误之--时钟不同步
  5. 寻路之 A* 搜寻算法
  6. (译)通过WebChannel/WebSockets与QML中的HTML交互
  7. 缓冲文件系统和非缓冲文件系统
  8. Spring设计模式之装饰器模式
  9. 关于Shell 脚本的export语句
  10. Qt 流畅的运行大循环
  11. SolidWorks2022 安装教程
  12. 2016年下半年 系统分析师 案例分析真题
  13. oracle数据库:约束
  14. 将multisim中波形在matlab中输出
  15. linux pam limits.so,linux – 即使需要pam_limits.so,ulimit也不会读取打开文件描述符limits.conf设置...
  16. 算法解析—同向双指针 字节笔试 万万没想到抓捕孔联顺,列表最大间隔不超过D
  17. Lempel-Ziv算法
  18. TinyG 入门06
  19. ajax treegrid 选中,easyui treeGrid异步加载子节点示例
  20. 奇遇MIX体验:加入全彩VST透视,开创消费级VR一体机新时代

热门文章

  1. 从Spy Mouse看App Store的推广方法
  2. matlab实现图像读取、写入和显示
  3. Java 方法(重载,递归)
  4. iOS简单实现图片模糊渐变效果
  5. 基于Three.js的360度全景图片
  6. Zinnia - Django 博客框架
  7. 两个显示屏之间鼠标移动方向调整
  8. 设计模式-MVC模式
  9. 从Qualcomm技术看loT未来发展方向
  10. java将emoji存到mysql中(utf8情况下)