Как назначить рисование для кнопки виджетов - PullRequest
0 голосов
/ 10 января 2019

надеясь, что кто-то может помочь. Не уверен, если это вообще возможно, но здесь идет.

У меня есть виджет Android, который состоит из одной кнопки. Я хочу программно установить рисование в качестве фона. Например, в стандартном упражнении я мог бы сделать ...

Button mybutton = (Button) findViewById(R.id.abutton);
GradientDrawable gd = new GradientDrawable();
gd.setCornerRadius(45);
gd.setColor(Color.parseColor("#FFFFFF));
mybutton.setBackground(gd);

Причина, по которой я пытаюсь это сделать, заключается в том, чтобы программно изменить цвет кнопки виджета на цвет, который выбирает пользователь, а также сохранить закругленные углы кнопки, как определено на рисунке выше.

Я разобрался, я могу изменить цвет кнопки виджета следующим образом.

RemoteViews views;
views = new RemoteViews(context.getPackageName(), R.layout.mylayout);
views.setInt(R.id.widgetbutton,"setBackgroundColor", Color.parseColor(widgethexcolor));

Но это сбрасывает кнопку в ее прямоугольную форму по умолчанию без закругленных углов, поэтому я предпочел бы сделать ее нарисованной.

Есть идеи?

Спасибо всем!

Nat

1 Ответ

0 голосов
/ 10 января 2019

Вы можете изменить цвет, позвонив Drawable.setColorFilter(int color, PorterDuff.Mode mode) или Drawable.setColorFilter(ColorFilter colorFilter). Я думаю, что такой подход не даст вам потерять закругленные углы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...