Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.89
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
#1

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

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

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

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

Изменить стиль кнопки Android - Программирование Android
Кто может помочь с изменением стиля кнопки button. Как нужно или можно изменить стиль, чтобы не было проблем с углами, которые отображаются...

Изменить стиль DialogFragment - Программирование Android
Приветствую, Есть приложение, в приложении есть DialogFragment с DatePicker и парой кнопок. Как изменить его стиль? Ну хотя бы цвет...

Изменить стиль текста из кода - Программирование Android
Есть TextViev: ... <TextView style="@style/MyStyle1" android:id="@+id/MyTextView" android:text="@string/MyText" /> ... И...

Не получается изменить цвет кнопки - Программирование Android
Я вроде написал все как нужно, но цвет кнопки все равно не изменяется... Вот код: <Button android:layout_width="wrap_content"...

Как изменить ссылку по нажатию кнопки? - Программирование Android
Кто подскажет, как тут, по нажатию кнопки менять ссылки? URL feedUrl = null; try { feedUrl = new...

Изменить фон кнопки в момент нажатия - Программирование Android
Добрый день! подскажите как изменить фон кнопки в момент нажатия. пробовал up.getBackground().setColorFilter(Color.rgb(175, 175, 175),...

9
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
29.07.2013, 19:58 #2
Плохо искали http://stackoverflow.com/questions/2...bute-in-a-view
1
Tester64
396 / 357 / 43
Регистрация: 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
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.07.2013, 23:42 #4
Java
1
bt.setBackgroundResource(R.drawable.red_gradient);
0
Tester64
396 / 357 / 43
Регистрация: 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
1159 / 983 / 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
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
01.08.2013, 00:21 #8
по словам автора он и использует селектор в теме, но не может его с кода вставить.
0
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
01.08.2013, 01:14  [ТС] #9
Цитата Сообщение от pony228 Посмотреть сообщение
есть такая классная тема под названием selector
Цитата Сообщение от V0v1k Посмотреть сообщение
по словам автора он и использует селектор в теме, но не может его с кода вставить
во-во! Кнопка с синим градиентом при нажатии становится темно-синей. При отпусканни возвращается назад. Красная в темно-красную...
А результатом
Java
1
bt.setBackgroundResource(R.drawable.red_gradient);
могу назначить только началное красно-градиентарное состояние. Реакторы теряются. Для начала пойдет (лучше чем просто равномерно заливать красном цветом), но реакторы похоже вручную прописывать прийдется...
0
V0v1k
1159 / 983 / 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
Привет! Вот еще темы с ответами:

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

Как в ListView обработать нажатие кнопки и изменить здесь же значение в textView ? - Программирование Android
У меня есть ListView, у него есть своя разметка на которой находится строчки на каждой из которых Button и textView. Как мне обработать...

Другой кнопкой из дочерней активности изменить фон той кнопки, которая в родительской активити - Программирование Android
Вот такая проблема: у меня в главной активности есть кнопка, как мне другой кнопкой из дочерней активности изменить фон той кнопки, которая...

Програмно нажать кнопку - Программирование Android
Почему обрабатывается &quot;KEYCODE_BACK&quot; , а &quot;KEYCODE_MEDIA_PLAY&quot;, &quot;KEYCODE_VOLUME_UP&quot;... не обрабатываются при нажатии на кнопку? ...


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

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

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