Android商城开发--实现商城底部导航栏

news/2024/11/17 23:36:40/

让我们先看效果图:

图一是默认效果图,图二是点击首页的效果图(图标和字体颜色会变化)

          

接下来是实现方法

1、先写布局。

我新建了一个ShoppingActivity,在activity_shopping.xml文件中,写整体布局,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"android:background="#fff"tools:context=".ShoppingActivity"><FrameLayoutandroid:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1" /><RadioGroupandroid:id="@+id/rg_main"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:background="#FBFBFA"android:orientation="horizontal"><RadioButtonandroid:id="@+id/rb_home"android:drawableTop="@drawable/home_button_selector"style="@style/MainButtonStyle"android:text="首页"/><RadioButtonandroid:id="@+id/rb_type"android:drawableTop="@drawable/type_button_selector"style="@style/MainButtonStyle"android:text="分类"/><RadioButtonandroid:id="@+id/rb_community"android:drawableTop="@drawable/community_button_selector"style="@style/MainButtonStyle"android:text="发现"/><RadioButtonandroid:id="@+id/rb_cart"android:drawableTop="@drawable/cart_button_selector"style="@style/MainButtonStyle"android:text="购物车"/><RadioButtonandroid:id="@+id/rb_user"android:drawableTop="@drawable/user_button_selector"style="@style/MainButtonStyle"android:text="个人中心"/></RadioGroup></LinearLayout>

相信很多小伙伴写了上面代码后,有不少飘红,那是因为样式和图片没有添加。

2、接下来添加图片。我这里是在图标库找的一些图标,这里给大家分享一个网址,里面有很多图标,大家可以根据自己需要去下载。

iconfont-阿里巴巴矢量图标库

下面这些是我保存的一些图标,大家下载的时候,最好每个图标下载两个不一样颜色的,后面样式中会用到(灰色图标是默认效果,橙红色图标是点击的效果)

将下载好的图标保存在drawable文件夹中。

 3、下面为RadioButton按钮添加样式。

首先在styles文件中,添加下面代码:

<style name="MainButtonStyle"><item name="android:layout_width">0dp</item><item name="android:layout_height">wrap_content</item><item name="android:layout_weight">1</item><item name="android:textColor">@drawable/bottom_button_text_selector</item><item name="android:button">@null</item><item name="android:textSize">10sp</item><item name="android:gravity">center</item><item name="android:padding">8dp</item>
</style>

接着在drawable里面新建 bottom_button_text_selector.xml。为RadioButton按钮中的文本添加点击时的样式。

这是新建的文件的方法,截图如下:

 这是具体代码:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--    设置下方图标被选中时,文本颜色--><item android:color="#535353" android:state_checked="false"></item><item android:color="#ff4040" android:state_checked="true"></item>
</selector>

 在drawable里面新建home_button_selector.xml。为RadioButton按钮中的"首页"添加点击时的样式。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><!--    设置下方图标被选中时,图标颜色--><item android:drawable="@drawable/index" android:state_checked="false"></item><item android:drawable="@drawable/index1" android:state_checked="true"></item></selector>

  在drawable里面新建type_button_selector.xml。为RadioButton按钮中的"分类"添加点击时的样式。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><!--    设置下方图标被选中时,图标颜色--><item android:drawable="@drawable/type" android:state_checked="false"></item><item android:drawable="@drawable/type1" android:state_checked="true"></item></selector>

  在drawable里面新建community_button_selector.xml。为RadioButton按钮中的"发现"添加点击时的样式。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><!--    设置下方图标被选中时,图标颜色--><item android:drawable="@drawable/found" android:state_checked="false"></item><item android:drawable="@drawable/found1" android:state_checked="true"></item></selector>

  在drawable里面新建cart_button_selector.xml。为RadioButton按钮中的"购物车"添加点击时的样式。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><!--    设置下方图标被选中时,图标颜色--><item android:drawable="@drawable/shop" android:state_checked="false"></item><item android:drawable="@drawable/shop1" android:state_checked="true"></item></selector>

在drawable里面新建user_button_selector.xml。为RadioButton按钮中的"个人中心"添加点击时的样式。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><!--    设置下方图标被选中时,图标颜色--><item android:drawable="@drawable/my" android:state_checked="false"></item><item android:drawable="@drawable/my1" android:state_checked="true"></item></selector>

实现效果如下:

以上就是商城的底部导航的样式。运行后,点击首页,就是上图的样式,点击个人中心,个人中心的图标会变亮,其他的图标都是灰色。

想看商城的具体实现,可以去主页看看其他文章哦。


http://www.ppmy.cn/news/402933.html

相关文章

Servlet 学习笔记3

一、HttpServletRequest类 a&#xff09;HttpServletRequest类的作用 每次只要有请求进入Tomcat服务器&#xff0c;Tomcat服务器就会把请求过来的HTTP协议信息解析好封装到Request对象中&#xff0c;然后传递到service&#xff0c;doGet&#xff0c;doPost方法中。我们可以通…

那些年吃过的点心

豆沙粑粑和椒盐饼东西算是小时候比较著名和难忘的点心了&#xff0c;比较出名的绿豆糕反而没有什么好感。 豆沙粑粑就是死面皮包豆沙打扁了&#xff0c;类似于昆明的官渡粑粑&#xff0c;不过馅是豆沙而已&#xff0c;微甜&#xff1b; 豆沙粑粑.jpg 椒盐饼就像一个压扁了花卷&…

pkg_resources.DistributionNotFound: The ‘tzlocal>=1.2‘ distribution was not found and is required by

PyInstaller打包APscheduler出现&#xff1a;pkg_resources.DistributionNotFound: The xxx>yyy distribution was not found and is required by the application 1.软件环境⚙️2.问题描述&#x1f50d;3.解决方法&#x1f421;3.1.添加APScheduler依赖项的元数据 4.结果预…

java和嵌入式,哪个好?

一、薪资方面 必须承认&#xff01;嵌入式是无法和Java比的&#xff0c;至少目前来看如此&#xff0c;我有位嵌入式的朋友&#xff0c;干了2年了&#xff0c;薪资才到14K&#xff0c;但是你看看Java&#xff0c;两年工作经验&#xff0c;18k的满街跑&#xff01; 这其实是因为&…

Tensorflow 2.3 model.evaluate报错InvalidArgumentError: Incompatible shapes: [1,64] vs. [1,128]

Tensorflow 2.3使用model.evaluate进行模型评估时报错tensorflow.python.framework.errors_impl.InvalidArgumentError: Incompatible shapes: [1,64] vs. [1,128] 1.软件环境⚙️2.问题描述&#x1f50d;3.解决方法&#x1f421;4.结果预览&#x1f914; ⚡插播一条老家自产的…

完美国际真数苹果_端阳果园|云南昭通冰糖心丑苹果

有一种丑苹果在云南昭通受到很多人的青睐&#xff0c;为啥丑还有那么多人喜欢呢&#xff1f;这就要从云南昭通丑苹果的生长环境以及生产过程有很大关系。 昭通丑苹果的生长环境 昭通&#xff0c;地处长江上游生态屏障之地&#xff0c;气候、降水、光照都极为适合苹果生长&#…

来自雪域高原的馈赠——海拔2000米的大凉山高原生态糖心苹果

来自雪域高原的馈赠——海拔2000米的大凉山高原生态糖心苹果 1.水果之王——苹果的健康功效2.大凉山高原生态糖心苹果3.品种与成熟月份4.规格与购买方式 图1. 大凉山高原生态糖心苹果 1.水果之王——苹果的健康功效 一天一个苹果是人们熟知的健康口号。的确&#xff0c;苹果含…

【Android】Room数据库怎么获取最后一个数据

需求 从Room数据库中获取到数据库表的最后一行数据 实现 方法一 通过查询某个表格的所有数据并按照逆序排序&#xff0c;然后获取第一个数据来获取最后一个数据。 1.在 DAO 接口中定义一个查询方法&#xff0c;用于查询某个表格的所有数据并按照逆序排序&#xff08;例如按…