问题标签 [selector-drawable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1611 浏览

android - 如何在android中以编程方式从颜色代码创建可绘制的选择器

我想#000000为选中和#FFFFFF未选中状态创建一个可绘制的选择器。

如何以编程方式创建可绘制对象?

目前我正在这样做:

0 投票
2 回答
4264 浏览

android - 选择器内部的涟漪效应

当有人按下我的 ImageView 时,我想实现涟漪效果,但对于其他状态也有不同的可绘制对象。

我有一个非常简单的ImageView

我将我的背景添加到它:

我的drawable看起来像这样:

当我单击时,背景消失而不是显示波纹效果。其他州工作正常。知道我在这里做错了什么吗?

0 投票
5 回答
9647 浏览

android - Android Selector Drawable 不适用于属性

我正在使用 attr 为我的项目创建一个可绘制的选择器,这样一旦我更改了主题颜色,我就不必对可绘制文件进行任何更改。我正在使用以下库:

这是drawable的源代码:

在相同的代码中,如果我用 colors.xml 文件中定义的颜色替换属性,则相同的可绘制作品。

带有颜色的可绘制示例:

提前致谢!

0 投票
0 回答
168 浏览

android - 使用物理鼠标单击时,可绘制选择器失去悬停状态

我为常规创建了一个自定义可绘制对象(基于可绘制选择器)Button,我决定使用物理鼠标和键盘测试我的应用程序。

那时我注意到,每次我用物理鼠标单击按钮时,它都会在hovered很短的时间内失去状态,并且仅在几毫秒后才恢复pressed状态。

即使这种情况只发生很短的时间,它也会产生令人讨厌且非常明显的“眨眼”。

我不知道我是否说清楚了,所以我将重现这些步骤:

1 - 按钮处于空闲状态,并且鼠标指针不在按钮上方:按钮以默认状态呈现 ok

2 - 我将鼠标光标移到按钮上,然后鼠标不动:按钮呈现悬停状态

3 - 我按下鼠标左键:按钮以默认状态(未悬停)呈现片刻,然后以按下状态呈现,产生视觉闪烁

Button通过用覆盖 drawableStateChanged()的自定义类替换按钮,可以轻松复制/验证这种奇怪的行为:

Logcat 显示:

我几乎尝试了一切:压倒一切onHoverChanged()setHovered()等等...我什至尝试在isHovered()内部调用drawableStateChanged()以查看是否有区别...什么都没有!!!!在设置按下状态之前,Android 会主动将可绘制状态和hovered属性更改为 false。那是故意的!

我在网上到处找,甚至在 SO。没有什么!好像还没有人注意到它,或者我一定忘记了一些非常简单的事情......

仅供参考:我没有使用任何库(如 AppCompat 等)。它是一个普通的按钮,放置在一个普通的 Activity 中。在三星 A5 2017(使用 USB 鼠标)和华硕 Chromebook Flip C100(使用触控板)上进行了测试。

仅供参考 2:实际样式为v21/styles.xml

仅供参考 3:我也尝试覆盖onGenericMotionEvent(). 同样,只要我单击按钮 logcat 显示@@@ HEXIT。此后不久,logcat 显示@@@ HENTER...但我什至从未将鼠标光标移动一个像素...更不用说将其移到按钮之外!

我怎样才能摆脱这种行为?有谁知道禁用此闪烁的标志或技巧?

重要提示:我不想使用到目前为止我想出的唯一解决方法:创建私有标志来手动控制悬停状态,忽略 Android 的悬停状态并使用计时器/计划延迟/等。