当按下按钮时,我们如何更改Border less按钮的背景颜色。
我用过这个:
android:background="?android:attr/selectableItemBackground"
android:text="@string/btn_skip"
我的按钮显示我的“strings.xml”中定义的标签“SKIP”。
现在当我测试它时它是好的除了它在按下状态时显示默认的“蓝色”颜色。 我希望它与我的“我的UI”主题的其他元素“Orange”“#FF8800”
相匹配任何想法?
提前谢谢......!
答案 0 :(得分:3)
而不是使用?android:attr / selectableItemBackground,您可以使用以下内容在drawable文件夹中创建一个xml。
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:dither="true">
<item
android:state_pressed="true"
android:drawable="@color/orange"/>
<item
android:state_enabled="false"
android:drawable="@color/default"/>
<item
android:drawable="@color/default"/>
</selector>
更新: 所以你将这些文件保存为:btn_drawable.xml在drawable文件夹中。
只需替换?android:attr / selectableItemBackground 即可 与*@drawable/btn_drawable.xml *
答案 1 :(得分:2)
谢谢@Nimish-Choudhary ......!我听从你的建议。而且我已经进一步解释了所有与初学者有同样问题的人。
创建一个名为“btntransparent.xml”
的xml<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:dither="true">
<item
android:state_pressed="true"
android:drawable="@color/pressed"/>
<item
android:state_enabled="false"
android:drawable="@color/defaultColor"/>
<item
android:drawable="@color/defaultColor"/>
</selector>
接下来将“按下”和“defaultColor”颜色添加到另一个xml说“colors.xml”
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="pressed">#CCFF8800</color>
<color name="defaultColor">#00000000</color>
</resources>
此处“#CCFF8800”是我按下的状态半透明橙色和“#00000000”是 100%透明黑< / em>(;-)那是不可见的)。您可以在Color| Android Developers
找到有关颜色代码的更多信息现在将“colors.xml”放入值文件夹中,将“btntransparent.xml”放入 drawable 中文件夹中。
现在最后一步是在按钮中使用它
<Button
android:id="@+id/id_btn_skip"
android:background="@drawable/transparentbtn"
android:onClick="skipToMain"
android:text="@string/btn_skip" />
那应该可以胜任......!
小心。
问候,
raisedadead
答案 2 :(得分:0)
如果我理解正确,您可以做的是在@drawable中添加新资源,例如my_ripple.xml
<?xml version="0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#FF8800">
</ripple>
然后只需将其设置为您的背景。
答案 3 :(得分:-2)
在您的主题中添加以下内容:
<item name="android:selectableItemBackground">#FF8800</item>
覆盖默认的蓝色。