Мне интересно, возможно ли это, но, надеюсь, кто-то сможет подтвердить.Как изменить цвет фона кнопки без изменения цветов onclick/onpress
Я создал простой пользовательский макет кнопки в XML для обработки сфокусированных/нажатых и спящих состояний. См. Код внизу. Это отлично работает, когда я использую его для создания новой кнопки. Тем не менее, я хотел бы, чтобы пользователь мог изменить цвет кнопки с помощью набора цветов, если они не нравятся по умолчанию. Однако, единственный способ я знаю, чтобы изменить цвет фона кнопки программно является использование
mybutton.setBackgroundColor(someothercolor);
, но если я сделаю это переписывает весь код разметки XML и я теряю изменение цвета при нажатии на кнопку. Я предполагаю, что это по дизайну, поскольку я по существу переписываю весь стиль фона, но я действительно хочу сделать это, чтобы позволить пользователю изменять цвет кнопки, когда он не нажимается на что-то обычай, но сохраняет стиль и расположение других состояний кнопка может быть (т.е. что происходит, когда она нажата).
Любые идеи кто-нибудь?
Заранее спасибо.
Nat
<?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>
Решение я вижу, чтобы сохранить цвет Hexa в базу данных то каждый раз, когда вы устанавливаете кнопку, он использует этот сохраненный цвет. – Sheychan
Спасибо за все комментарии. По звуку этого нет простого способа сделать это, и создание db только для того, чтобы позволить изменение цвета кнопки, кажется, немного переборщило. Возможно, мне лучше просто создать пару тем или просто потерять цвет нажатого состояния, если люди действительно хотят изменить цвет кнопки. Если у кого-то есть более простое решение, тогда я все уши и еще раз спасибо всем за то, что посмотрел. – Regnodulous