Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.58/33: Рейтинг темы: голосов - 33, средняя оценка - 4.58
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
1

Програмно изменить стиль кнопки

29.07.2013, 17:25. Просмотров 6203. Ответов 9
Метки нет (Все метки)

Возможно ли это? Где-то (на англоязычных форумах) читал что НЕТ.
Но может я плохо читал или придумали уже...

Цель - Нажимаю на желтую градиентную кнопку, она становится красной градиентой.
Пока меняю фоновый цвет на красный, но это уже не так красиво.
Теоретически можно сделать 2 кнопки и менять их видимость... Но заготовок градиентов у меня больше 8 и делать 8 кнопок "на все случаи жизни"...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2013, 17:25
Ответы с готовыми решениями:

Изменить стиль кнопки Android
Кто может помочь с изменением стиля кнопки button. Как нужно или можно изменить...

Изменить стиль DialogFragment
Приветствую, Есть приложение, в приложении есть DialogFragment с DatePicker и...

Изменить стиль текста из кода
Есть TextViev: ... <TextView style="@style/MyStyle1"...

Не получается изменить цвет кнопки
Я вроде написал все как нужно, но цвет кнопки все равно не изменяется... Вот...

Как изменить ссылку по нажатию кнопки?
Кто подскажет, как тут, по нажатию кнопки менять ссылки? URL feedUrl = null; ...

9
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
29.07.2013, 19:58 2
Плохо искали http://stackoverflow.com/questions/2...bute-in-a-view
1
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
29.07.2013, 22:59  [ТС] 3
Цитата Сообщение от YuraAAA Посмотреть сообщение
Когда-то ЭТОТ сайт прошерстил, но неработает...

попробовал согласно Вашей ссылке:
Java
1
2
3
4
        Button bt;
        bt = ((Button) findViewById(R.id.btTest));
        bt.setEnabled(false);// с ЭТИМ и БЕЗ
        bt.setBackgroundResource(R.style.BaseThemeButton_Red);
Но не работает... У Вас работает?

Только прямым включением в XML:
XML
1
2
3
<Button
                style="@style/BaseThemeButton_Red"
...
Когда-то вычитал что можно задавать стиль только при ПРОГРАММНОМ создании кнопки, а не менять на ходу...
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.07.2013, 23:42 4
Java
1
bt.setBackgroundResource(R.drawable.red_gradient);
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
30.07.2013, 04:14  [ТС] 5
Цитата Сообщение от V0v1k Посмотреть сообщение
Java
1
bt.setBackgroundResource(R.drawable.red_gradient);
Сработало... но этот стиль ("R.drawable.red_gradient") "статический". А "R.style.BaseThemeButton_Red" был динамическим - обрабатыватывал и смену стиля на нажатие.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.07.2013, 01:43 6
в стиле BaseThemeButton_Red есть background="R.drawable.blabla", вот это R.drawable.blabla и поместите в
Java
1
bt.setBackgroundResource(R.drawable.blabla );
не знаю как еще объяснить.
0
pony228
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 2
01.08.2013, 00:17 7
есть такая классная тема под названием selector. Смысл следующий, задаем бекграунды для разных состояний любого UI элемента(кнопки, ImageView'a тд) далее просто присваиваем этот файл бекграунду нужного элемента.
XML
1
2
3
4
5
6
7
8
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
 
    <item android:drawable="@drawable/button_blue_down" android:state_focused="true" android:state_pressed="false"/>
    <item android:drawable="@drawable/button_blue_down" android:state_focused="true" android:state_pressed="true"/>
    <item android:drawable="@drawable/button_blue_down" android:state_focused="false" android:state_pressed="true"/>
    <item android:drawable="@drawable/button_blue"></item>
    
</selector>
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
01.08.2013, 00:21 8
по словам автора он и использует селектор в теме, но не может его с кода вставить.
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
01.08.2013, 01:14  [ТС] 9
Цитата Сообщение от pony228 Посмотреть сообщение
есть такая классная тема под названием selector
Цитата Сообщение от V0v1k Посмотреть сообщение
по словам автора он и использует селектор в теме, но не может его с кода вставить
во-во! Кнопка с синим градиентом при нажатии становится темно-синей. При отпусканни возвращается назад. Красная в темно-красную...
А результатом
Java
1
bt.setBackgroundResource(R.drawable.red_gradient);
могу назначить только началное красно-градиентарное состояние. Реакторы теряются. Для начала пойдет (лучше чем просто равномерно заливать красном цветом), но реакторы похоже вручную прописывать прийдется...
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
01.08.2013, 01:19 10
ну так применяйте дравейбл который в стиле написан. в чем проблема?
0
01.08.2013, 01:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.08.2013, 01:19

Изменить фон кнопки в момент нажатия
Добрый день! подскажите как изменить фон кнопки в момент нажатия. пробовал ...

Как изменить цвет кнопки, на которую установлен селектор?
Добрый день! Хочу изменить цвет кнопки на которой установлен селектор, но...

Как изменить цвет TextView в виджете нажатием кнопки?
Здравствуйте. Я сделал виджет с часами, но мне нужно сделать так чтобы в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru