Я пытаюсь создать кнопки, похожие на значки в панели действий, то есть прозрачные изображения, которые меняют цвет фона при нажатии.Button Button drawable issue
Эти условия я хотел бы, чтобы удовлетворить:
- фона меняет цвет мыши
- Содержит небольшой прямоугольник формы в центре
- Прямоугольник может изменить цвет программно
Я попытался использовать Drawable
, чтобы представить прямоугольник, а затем установить его в качестве фона кнопки, но он был расширен до краев кнопки, и поэтому re не было цвета фона для изменения при нажатии (я смог использовать drawable.setColorFilter() и button.setBackground (drawable), чтобы изменить его цвет, однако). Сжатие кнопки также уменьшает контактную мишень.
Я также пробовал использовать StateListDrawable
, содержащий две формы прямоугольника, фон и внутренний прямоугольник, поэтому на state_pressed
цвет фона изменит цвет. Однако передний прямоугольник снова растянулся и полностью покрыл прямоугольник фона.
Какой метод может достичь моих условий? Благодарю.
Но каждая кнопка содержит прямоугольник, который может быть любого цвета (определяется пользователем), поэтому, если я не понимаю, это не сработает для меня, поскольку вы по существу предлагаете использовать onClick и onRelease, которые на самом деле не адресуют проблема цветных прямоугольников. – Ween