прозрачность кнопки не изменяется с помощью 'setAlpha' - PullRequest
3 голосов
/ 27 ноября 2010

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

acre_button.getBackground().mutate().setAlpha(155);

Пользовательский интерфейс приложения не изменился, как я ожидал.у меня только 3 из 5 - это прозрачность. при нажатии на две эти кнопки медленно меняется прозрачность

Заранее спасибо

С уважением, Кариячан

Ответы [ 4 ]

1 голос
/ 16 декабря 2011
Button btn;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);   
    setContentView(R.layout.main);  
    btn = (Button) findViewById(R.id.main_btn);  
    Drawable d = getResources().getDrawable(R.drawable.imagen);  
    d.setAlpha(60);  
    btn.setBackgroundDrawable(d);  
}

Это работает для меня:)

0 голосов
/ 23 июля 2013

Для тех, кто все еще ищет решение этой проблемы:

Метод setBackgroundDrawable(Drawable d) является устаревшим с API 16

Предполагая, что вашИдентификатор кнопки - buttonId, а ваш чертеж - с именем button_img, обработайте это с помощью следующего метода onCreate:

((Button)(findViewById(R.id.buttonId))).setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Drawable d = v.getResources().getDrawable(R.drawable.button_img);
            d.setAlpha(40);  
            if (Build.VERSION.SDK_INT >= 16)
                v.setBackground(d);
            else
                v.setBackgroundDrawable(d);
            //Then call your next Intent or desired action.

        }
    });

Протестировано и работает для меня!

0 голосов
/ 20 июля 2011

Найдите фон кнопки в каталоге android-sdk здесь: android-sdk\platforms\android-10\data\res\drawable-mdpi\btn_default_normal.9.png

Вы можете изменить его, чтобы сделать его полупрозрачным (Обратите внимание, что это 9-patch иВы не должны изменять непрозрачность черных линий).

После того, как вы изменили эту кнопку в своем каталоге для рисования, вы можете добавить это в свой код:

button.setBackgroundDrawable(getResources().getDrawable(R.drawable.transparentImage));

, чтобы сделать его полупрозрачный и

button.setBackgroundDrawable(getResources().getDrawable(Android.R.drawable.btn_default_normal));

чтобы вернуть его обратно.

0 голосов
/ 27 ноября 2010

Попробуйте следующее:

button.setBackgroundColor(android.R.color.transparent);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...