【问题标题】:Android view state_pressed Blue backgroundAndroid 视图 state_pressed 蓝色背景
【发布时间】:2012-07-07 05:18:41
【问题描述】:

我有很多自定义视图,并且我有 state_pressed 的样式。基本上它是一个带有

的矩形

实心android:color="#DC2D5A8C"

我想做的是模拟标准视图/控件附带的蓝色背景颜色。例如:当您单击按钮或列表视图项时,背景变为蓝色(on_pressed)。

我让它与上述样式一起使用,但问题是我们称之为色调效果。在按钮中,文本标题为黑色。按下时,背景为蓝色,文字颜色变为白色。

现在如何在自定义控件的视图中实现这种所谓的“色调”变化?

非常感谢您的回复。

谢谢!

【问题讨论】:

    标签: android background states pressed tint


    【解决方案1】:

    您可以使用选择器 xml 文件来执行此操作。您必须为按钮设置背景。而不是将 xml 文件设置为其背景。如下所示在您的可绘制文件夹中创建 selector.xml 文件并设置该 xml 文件作为该按钮的背景,就像:android:background="@drawable/selector"

    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <!-- When selected, use blue -->
        <item android:drawable="@drawable/btn_blue"
              android:state_pressed="true" />
        <!-- When not selected, use black-->
        <item android:drawable="@drawable/btn_black"/>
    
     </selector>  
    

    通过这样做,您将为您的按钮获得所谓的色调效果。希望这会对您有所帮助。

    【讨论】:

    • 不,不是答案。我已经有一个选择器,并且我有一个与之关联的样式。我得到蓝色背景,但我需要视图的元素根据蓝色背景更改颜色(可能是对比度?)
    • 为什么不创建已经有文本的图像,也可以是白色的。您正在设置具有白色文本的图像,这也很容易实现。
    • 我的自定义视图包含 TextViews,显然其内容会动态变化。所以它不像使用 image_normal 和 image_state_pressed 那样简单......
    猜你喜欢
    • 1970-01-01
    • 2016-06-08
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 2021-03-11
    • 2011-05-02
    • 1970-01-01
    相关资源
    最近更新 更多