Android программно создает границу кнопки - PullRequest
0 голосов
/ 22 июня 2011

Я создаю приложение, которое создает кнопки с помощью кода при запуске действия (количество кнопок зависит от количества значений в массиве).Цвет каждой отдельной кнопки определяется соответствующим значением в массиве, цвет кнопки устанавливается при создании кнопки.На кнопках нет текста, и из-за прямой установки цвета фона они не являются 9-ю патч-изображениями (цвет кнопки должен быть как можно ближе к указанному значению).

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

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

1 Ответ

4 голосов
/ 22 июня 2011

Я могу вспомнить взлом, который может или не может работать (я не проверял его). Пожалуйста, поиграйте с этим и, возможно, получите более чистое решение -

button.setBackgroundColor(whatever);    
Drawable backgroundRes = button.getBackground();    
Drawable drawableRes = loadDrawable(R.drawable.white_outline);
Drawable[] drawableLayers = { backgroundRes, drawableRes };
LayerDrawable ld = new LayerDrawable(drawableLayers);
button.setBackgroundDrawable(ld);

PS: извиняюсь за плохое форматирование кода, я не совсем понял, как это сделать правильно в StackOverflow.

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