android - 按钮上的阴影颜色取决于 XML 中的状态 - Android

标签 android xml button

我在 Android 中创建了自定义 ToggleButtons,因为所有按钮都继承自相同的 xml,所以我想根据状态更改它们的行为方式,所以当检查状态时,我想更改阴影颜色,但这似乎并没有可以使用当前的 SDK。

我创建了一个包含 button_colors 的 xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<selector
   xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:state_checked="true"
    android:color="#FFFFFF"  />

<item
    android:color="#000000" />
 </selector>

但这似乎只适用于文本颜色,而不适用于文本上的阴影颜色。 有什么我想念的吗? 而不是在代码中手动为每个按钮执行此操作,因为我希望它应用于应用程序中的每个按钮。

更新编辑:

我的选择器目前看起来像这样

<selector
xmlns:android="http://schemas.android.com/apk/res/android">

<item
    android:state_checked="true"
    android:drawable="@drawable/button_gradient_selected" />

<item
    android:drawable="@drawable/button_gradient" />

</selector>

但正如我在下面对评论员提到的那样,我似乎无法从这里更改样式/文本颜色阴影,因为它似乎只能接受可绘制对象。

当我尝试在此处的按钮上放置不同的样式时,它会强制关闭或不会根据状态更改样式。当我只尝试在此处输入样式并将可绘制对象设置为强制关闭的样式时。无论哪种方式,它似乎都不起作用。

最佳答案

Android 框架好像不支持这个

来自 TextView.java:

        case com.android.internal.R.styleable.TextView_textColor:
            textColor = a.getColorStateList(attr);
            break;

        case com.android.internal.R.styleable.TextView_shadowColor:
            shadowcolor = a.getInt(attr, 0);
            break;

他们以不同的方式对待 textColor 和 shadowColor。

关于android - 按钮上的阴影颜色取决于 XML 中的状态 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5026304/

相关文章:

android - 如何从 Android 连接 phpmyadmin

Android SQLite 查找速度非常慢

java - 防止 eclipselink moxy 转义元素内容

Android:文本大小更改时布局中断

xml - cvc-enumeration-valid : Value '2' is not facet-valid with respect to enumeration '[1]' . 它必须是枚举中的一个值

javascript - 将 Enter 键映射到 HTML/CSS/JS 中的按钮

Android TableLayout - 同一列内的 TextView 和按钮

android - 重命名APK中的包名称

c# - 如何在WPF窗口中隐藏关闭按钮?

java - 如何保护 mp3 文件在 Android 上不被读取或复制?