Android drawable selector 设置无效

今天写代码时,需要设置一个TextView 的点击效果,press 状态和normal 状态两个icon,同时,点击区域背景在press状态下也不同。实现时将TextView 放在RelativeLayout 中 ,RelativeLayout 作点击区域,设置点击的背景效果,TextView 在点击时显示不同的icon图片。

布局文件如下

<RelativeLayout
    android:id="@+id/dele_layout"
    android:layout_width="math_parent"
    android:layout_height="48dp"
    android:background="@drawable/setting_delete_selector"
    >
    <TextView
        android:id="@+id/delete_move_notice"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:background="@drawable/webview_move_setting_close"
        />

</RelativeLayout>

点击区域背景setting_delete_selector.xml 文件如下

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/setting_move_webview_bg"></item>
<item android:drawable="@color/setting_move_action_setting__close_press_bg" android:state_pressed="true"></item>

TextView的selector 文件

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/pop_ico_delete_normal"></item>
<item android:drawable="@drawable/pop_ico_delete_press" android:state_pressed="true"></item>

其中 color.xml 中定义了 selector.xml 中使用的颜色值。这里就不再贴出。

这样的代码,打死都没有效果,没有效果,没有效果。重要事情说三遍!!!

费劲千辛万苦,查找所有代码,重写demo测试,最后查找出来原因竟然是

press状态要放在selector 的第一行

将两个文件修改如下:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/pop_ico_delete_press" android:state_pressed="true"></item>
<item android:drawable="@drawable/pop_ico_delete_normal"></item>
</selector>

这样,效果就有了~

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-05 14:51:57

Android drawable selector 设置无效的相关文章

Android drawable selector用法

简单的说即是对应控件点击状态的背景控制 android:state_selected是选中(短暂) android:state_focused是获得焦点 android:state_pressed是点击(短暂) android:state_enabled是设置是否响应事件,指所有事件

android selector设置button点击效果(详细)以及常见问题

button的点击效果学习起来事实上比较容易,此点对开发者来说也是使用的比较频繁的一个知识点,与它相关的还有编辑框的获取焦点时改变背景颜色.选择button选择时改变字体颜色等等.这些其实都是用到的drawable的seletor. 当然drawable中还有很多其他效果可以实现,具体的可以参考笔者的另一篇博客: android修改控件外观(使用drawable资源) 效果:(不点击时显示白色,点击时显示灰色) 实现这个效果其实很简单,在drawable中创建一个xml文件,然后输入两行代码即可

【原创】Android selector选择器无效或无法正常显示的一点研究

想将LinearLayout作为一个按钮,加上一个动态背景,按下的时候,背景变色,这个理所当然应该使用selector背景选择器来做: <LinearLayout android:id="@+id/btn_user_profit_record" android:layout_width="0dp" android:layout_height="130dp" android:layout_weight="1" androi

Android Drawable 关于selector中state_pressed=&quot;true&quot;的位置顺序

界面中有一个按钮使用这样的样式: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape> <corners android:radius="10dp"/> <solid a

Android之根布局动态加载子布局时边距设置无效问题

Android大部分的控件都会有padding和layout_margin两个属性,一般来说它们的区别是: padding:控件中的内容离控件边缘的距离. margin:  控件离它的父控件边缘的距离. 今天做了一个由根布局动态加载子布局的实验,结果发现子布局中的这两个属性可以按预期的效果显示,但是给根布局设置的padding并没有对被加载的子布局产生效果. 代码如下: 根布局文件名为activity_main.xml,其xml文件定义的内容为: <LinearLayout xmlns:andr

(九)android中通过selector设置TextView的文字选中和正常时候的颜色

通过selector设置TextView的文字选中和正常时候的颜色的步骤如下所示: 1.在res下面建个文件夹color,color文件夹下面建个tv_text_color_selector.xml,tv_text_color_selector.xml中的代码如下所示: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.androi

Android Drawable Mipmap Vector使用及Vector兼容

原文地址:http://blog.csdn.net/eclipsexys/article/details/51838119 http://blog.csdn.net/qq_15545283/article/details/51472458 一.谷歌在app中图标的适配的历史 在安卓的发展历程中,由于设备碎片化的原故,谷歌在app中图标的适配上做出一步又一步的改进,大体有这么几个阶段: 首先有了drawable-(m|h|xh|xxh|xxxh)dpi 自android studio后,又有了mi

Android Drawable 那些不为人知的高效用法

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/43752383,本文出自:[张鸿洋的博客] 1.概述 Drawable在我们平时的开发中,基本都会用到,而且给大家非常的有用.那么什么是Drawable呢?能够在canvas上绘制的一个玩意,而且相比于View,并不需要去考虑measure.layout,仅仅只要去考虑如何draw(canavs).当然了,对于Drawable传统的用法,大家肯定不陌生 ,今天主要给大家带来以下几

Android Drawable 那些不为人知的高效使用方法

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/43752383,本文出自:[张鸿洋的博客] 1.概述 Drawable在我们平时的开发中.基本都会用到,并且给大家很的实用.那么什么是Drawable呢?可以在canvas上绘制的一个玩意.并且相比于View,并不须要去考虑measure.layout,只只要去考虑怎样draw(canavs). 当然了,对于Drawable传统的使用方法.大家肯定不陌生 .今天主要给大家带来下面