Android 仿京东商城底部布局的选择效果(Selector 选择器的实现)

 更新时间:2017年04月21日 16:14:42   投稿:mrr  
这篇文章主要介绍了Android 仿京东商城底部布局的选择效果(Selector 选择器的实现),需要的朋友可以参考下

京东商城的底部布局的选择效果看上去很复杂,其实很简单,这主要是要感谢 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 Studio实现简单的QQ登录界面的示例代码

    Android Studio实现简单的QQ登录界面的示例代码

    这篇文章主要介绍了Android Studio实现简单的QQ登录界面的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • android 跳转到应用通知设置界面的示例

    android 跳转到应用通知设置界面的示例

    本篇文章主要介绍了android 跳转到应用通知设置界面的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Android图表库HelloCharts的实例详解

    Android图表库HelloCharts的实例详解

    这篇文章主要介绍了Android中的图标库HelloCharts的一些简单使用实例,文中的示例代码讲解详细,对我们学习有一定的参考价值,需要的可以参考一下
    2022-01-01
  • Android三种方式生成矢量图之VectorDrawable类使用详解

    Android三种方式生成矢量图之VectorDrawable类使用详解

    这篇文章主要介绍了Android三种方式生成矢量图的VectorDrawable类,2014年6月26日的I/O 2014开发者大会上谷歌正式推出了Android L,它带来了全新的设计语言Material Design,新的API也提供了这个类VectorDrawable
    2023-02-02
  • Android Activity 与Service进行数据交互详解

    Android Activity 与Service进行数据交互详解

    这篇文章主要介绍了Android Activity 与Service进行数据交互的相关资料,在开发Android App的时候经常会使用这样的功能,需要的朋友可以参考下
    2016-10-10
  • Android实现登录注册界面框架

    Android实现登录注册界面框架

    这篇文章主要介绍了Android实现登录注册界面的框架,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Android 中ScrollView与ListView冲突问题的解决办法

    Android 中ScrollView与ListView冲突问题的解决办法

    这篇文章主要介绍了Android 中ScrollView与ListView冲突问题的解决办法的相关资料,希望通过本文能帮助到大家,让大家掌握解决问题的办法,需要的朋友可以参考下
    2017-10-10
  • 详解Android ScrollView嵌套EditText出现的滑动问题

    详解Android ScrollView嵌套EditText出现的滑动问题

    本篇文章主要介绍了详解ScrollView嵌套EditText出现的滑动问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Android中文件读写(输入流和输出流)操作小结

    Android中文件读写(输入流和输出流)操作小结

    这篇文章主要介绍了Android中文件读写(输入流和输出流)操作小结,本文总结了Android中文件读写的原理、字节流和字符流的区别、文件读写的步骤、输入流和输出流以及代码实例等内容,需要的朋友可以参考下
    2015-06-06
  • 关于Android中点击通知栏的通知启动Activity问题解决

    关于Android中点击通知栏的通知启动Activity问题解决

    这篇文章主要介绍了关于解决Android中点击通知栏的通知启动Activity问题的相关资料,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03

最新评论