Android 仿京东商城底部布局的选择效果(Selector 选择器的实现)
发布时间 - 2026-01-11 00:46:12 点击率:次
京东商城的底部布局的选择效果看上去很复杂,其实很简单,这主要是要感谢 selector 选择器,本文将讲解仿照京东商城的底部布局的选择效果,如何实现 selector 选择器,在不同的状态下,给 view 设置不同的背景。
京东商城底部布局的选择效果如下。
View主要的几种状态
主要状态有8种,设置状态的代码以及相应的含义如下。
android:state_pressed = "true/false" //true表示按下状态,false表示非按下状态。 android:state_focused = "true/false" //true表示焦点聚集状态,false表示非焦点聚集状态。 android:state_selected = "true/false" //true表示选中状态,false表示非选中状态。 android:state_activated = "true/false" //true表示激活状态,false表示非激活状态。 android:state_checkable = "true/false" //true表示可以勾选状态,false表示不可以勾选。 android:state_checked = "true/false" //true表示被勾选状态,false表示未被勾选状态。 android:state_enabled = "true/false" //true表示可用状态,fasle表示不可用状态。 android:state_window_focused = "true/false" //true表示应用程序窗口获取焦点状态,false表示应用程序窗口非获取焦点状态。
设置不同状态下的图标背景
首先准备好不同状态下的同一类型的图标分别两张,复制到 mipmap 文件下,然后在 drawable 文件下新建 Drawable resource file 文件,命名为 selector_icon_home.xml。
之后在 selector 下写入不同状态下的背景图,这里是首页模块的 Selector 设置的源代码。其他模块的 Selector 图标设置和首页模块一致。
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Non focused states --> <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@mipmap/icon_home" /> <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@mipmap/icon_home_press" /> <!-- Focused states --> <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@mipmap/icon_home_press" /> <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@mipmap/icon_home_press" /> <!-- Pressed --> <item android:state_selected="true" android:state_pressed="true" android:drawable="@mipmap/icon_home_press" /> <item android:state_pressed="true" android:drawable="@mipmap/icon_home_press" /> </selector>
所有模块下的 Selector 图片文件都添加完成后,最后设置 ImageView 的背景为 R.drawable.selector_icon_home,代码如下。
imageView.setBackgroundResource(R.drawable.selector_icon_home);
运行后得到效果图如下。
设置不同状态下的文字颜色
新建 color 文件,然后新建 Color resource file 文件,命名为 selector_tab_text.xml。
这里各个模块的选择效果下文本颜色变化是一样的,只需要在该文件中写入不同状态下的文字的颜色就可以了,其源代码如下。
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Selected --> <item android:state_selected="true" android:color="#eb4f38" /> <!-- Active --> <item android:state_active="true" android:color="#eb4f38"/> <item android:state_selected="false" android:color="#a9b7b7" /> <item android:state_active="false" android:color="#a9b7b7"/> </selector>
然后在布局文件 layout 中设置 TextView 的文字颜色为 R.color. selector_tab_text 就大功到成了。
android:textColor="@color/selector_tab_text
运行后得到效果图如下。
最终效果
selector 选择器在点击事件状态变化时基本上都会使用到,既开发方便,又交互效果好,已经是必不可少的,更多的用处和用法可以参考 Android developer 官方文档。
以上所述是小编给大家介绍的Android 仿京东商城底部布局的选择效果(Selector 选择器的实现),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# android
# 底部布局选择效果
# 底部布局
# Android仿Boss直聘文本日期混合滚轮选择器示例
# Android 实现IOS 滚轮选择控件的实例(源码下载)
# Android滚轮选择时间控件使用详解
# Android高仿IOS 滚轮选择控件
# 轻松实现可扩展自定义的Android滚轮时间选择控件
# Android实现底部图片选择Dialog
# Android 实现IOS选择拍照相册底部弹出的实例
# Android开发中实现IOS风格底部选择器(支持时间 日期 自定义)
# Android实现底部滚轮式选择弹跳框
# 状态下
# 勾选
# 京东
# 选择器
# 按下
# 首页
# 命名为
# 小编
# 源代码
# 应用程序
# 成了
# 在此
# 不可以
# 只需
# 要在
# 给大家
# 几种
# 会使
# 上都
# 两张
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
js实现获取鼠标当前的位置
Laravel如何实现一对一模型关联?(Eloquent示例)
如何将凡科建站内容保存为本地文件?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
Laravel如何使用Blade模板引擎?(完整语法和示例)
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
javascript中闭包概念与用法深入理解
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
html如何与html链接_实现多个HTML页面互相链接【互相】
Python结构化数据采集_字段抽取解析【教程】
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
Laravel如何创建自定义Artisan命令?(代码示例)
Laravel如何记录自定义日志?(Log频道配置)
如何在阿里云购买域名并搭建网站?
Python面向对象测试方法_mock解析【教程】
香港服务器租用每月最低只需15元?
Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】
长沙企业网站制作哪家好,长沙水业集团官方网站?
简历没回改:利用AI润色让你的文字更专业
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
北京企业网站设计制作公司,北京铁路集团官方网站?
Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】
如何续费美橙建站之星域名及服务?
浅析上传头像示例及其注意事项
高防服务器租用指南:配置选择与快速部署攻略
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
PHP 500报错的快速解决方法
如何做网站制作流程,*游戏网站怎么搭建?
Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南
Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控
Laravel中的Facade(门面)到底是什么原理
Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
新三国志曹操传主线渭水交兵攻略
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
简单实现jsp分页
如何用虚拟主机快速搭建网站?详细步骤解析
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
Java解压缩zip - 解压缩多个文件或文件夹实例
Laravel怎么清理缓存_Laravel optimize clear命令详解
如何在万网开始建站?分步指南解析
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
如何基于PHP生成高效IDC网络公司建站源码?
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
android nfc常用标签读取总结
*服务器网站为何频现安全漏洞?

