【问题标题】:How do I create a colorstate list for both of my themes?如何为我的两个主题创建颜色状态列表?
【发布时间】:2020-09-11 22:16:57
【问题描述】:

我正在 Android 中制作一个消息传递应用程序,并且我想制作一个表情符号键盘。我已经设置好布局,现在我要开始编写布局了。但是,我的明暗主题与此冲突。

我的深色主题系统的工作方式是我有一个 attrs.xml 文件,该文件声明了我将用于布局的所有颜色,styles.xml 为这两个主题定义了它们,所以每当我想使用颜色,例如,我将使用?attr/iconTint,然后它在两个主题上看起来都是正确的。

当有人在表情符号键盘中选择一个类别时,它应该将颜色设置为 attr 属性,以便我可以通过编程方式更改色调,以便颜色适合当前选择的主题。

问题在于它没有显示正确的颜色,有人建议我需要使用 colorstate 列表,但我不知道如何。

如何创建一个颜色状态列表来检测我所处的主题,然后根据当前主题设置图像视图的色调?

【问题讨论】:

    标签: android onclick imageview onclicklistener tint


    【解决方案1】:

    当我想改变ImageView的色调时,我总是使用这些方法

       public static void setTintColor(ImageView img, int color) {
            ImageViewCompat.setImageTintList(img, ColorStateList.valueOf(color));
        }
    
        public static void clearTintColor(ImageView img) {
            ImageViewCompat.setImageTintList(img, null);
        }
    

    【讨论】:

    • 对不起,这对我不起作用。我将颜色属性设置为我的R.attr 属性,但它的颜色仍然与我使用setColorFilter时的颜色相同@
    • 为什么把颜色放在attr 文件中?它应该在color.xml 文件中
    • 我的暗模式系统就是这样工作的。我有一个attrs.xml 文件,它创建活动中的所有颜色,在styles.xml 中,我为浅色和深色主题定义了这些属性的颜色,每当我想分配颜色时,我只使用?attr/iconTint 例如, 将其设置为该颜色。
    • 我可能需要一种不同的方法来设置这样的色调。 ?
    • 它只需要一个方法来设置带有 attr 属性的图像视图的色调。希望总结得很好。
    猜你喜欢
    • 2012-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-11
    相关资源
    最近更新 更多