我在想这是否可能,但希望有人能够确认。如何在不改变onclick/onpress颜色的情况下更改按钮背景颜色
我已经在XML中创建了一个简单的自定义按钮布局来处理聚焦/按下和休眠状态。查看底部的代码。当我使用它来创建一个新按钮时,这工作正常。但是,如果用户不喜欢默认设置,我希望用户能够通过颜色选择器更改按钮颜色。但是,我知道只有这样才能改变按钮的背景颜色程序是使用
mybutton.setBackgroundColor(someothercolor);
,但如果我这样做,它会覆盖所有的XML布局代码,我失去了颜色变化按下按钮时。我想这是设计,因为我基本上覆盖整个背景风格,但我真正想要做的是允许用户改变按钮的颜色,当它没有按到自定义的东西,但保持其他国家的风格和布局该按钮可以在(即按下时会发生什么)。
任何想法的人?
预先感谢您。
纳特
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="false" android:drawable="@color/originalbuttoncolor" />
<item android:state_focused="true" android:state_pressed="true" android:drawable="@color/someotherbuttoncolor" />
<item android:state_focused="false" android:state_pressed="true" android:drawable="@color/someotherbuttoncolor" />
<item android:drawable="@color/originalbuttoncolor" />
</selector>
我看到的解决方案是将颜色六保存到数据库那么每次您设置按钮时,都会使用保存的颜色 – Sheychan
感谢您的所有评论。通过它的声音,没有简单的方法来做到这一点,并创建一个数据库,只是为了让按钮颜色的变化看起来有点矫枉过正。也许我最好创建几个主题,或者如果人们真的想改变按钮的颜色,就简单地丢失按下状态的颜色。如果任何人有任何简单的解决方案,那么我全力以赴,再次感谢大家的期待。 – Regnodulous