#android #button #listener #sleep #wait
#Android #кнопка #слушатель #сон #подождите
Вопрос:
У меня есть несколько кнопок, одна из которых основная, другие дочерние, я хочу, чтобы эффект мигания на главной кнопке при нажатии на дочерние кнопки.
Я использовал OnTouchListener для всех дочерних кнопок, в этих прослушивателях я вызываю метод, который я использовал для мигания главной кнопки.
метод.
public void refreshMainButton() {
Bitmap b1 = Bitmap.createBitmap(BitmapFactory.decodeResource(
getResources(), R.drawable.tabouterover_one));
Bitmap b2 = Bitmap.createBitmap(BitmapFactory.decodeResource(
getResources(), R.drawable.tabouterover_two));
Bitmap b3 = Bitmap.createBitmap(BitmapFactory.decodeResource(
getResources(), R.drawable.tabouterover_three));
Bitmap b = Bitmap.createBitmap(BitmapFactory.decodeResource(
getResources(), R.drawable.tabmain_two));
BitmapDrawable d1 = new BitmapDrawable(b1);
outerImageViews[1].setBackgroundDrawable(d1);
BitmapDrawable d2 = new BitmapDrawable(b2);
outerImageViews[1].setBackgroundDrawable(d2);
BitmapDrawable d3 = new BitmapDrawable(b3);
outerImageViews[1].setBackgroundDrawable(d3);
try {
wait(1000);
} catch (Exception e) {
}
BitmapDrawable d4 = new BitmapDrawable(b);
outerImageViews[1].setBackgroundDrawable(d4);
}
Это не влияет на главную кнопку.
Если у кого-нибудь есть какие-либо идеи, пожалуйста, помогите мне.
Заранее спасибо …!
Ответ №1:
Я бы рекомендовал использовать анимацию для архивирования этого эффекта.
Android имеет очень жесткие ограничения в активности — если активность не отвечает в течение определенного времени (я думаю, это было 5 секунд), приложение показывает диалоговое окно для ее завершения. В эту ловушку вы попадете (возможно) с конструкцией wait.
Теперь вы могли бы подумать о том, чтобы перенести это в поток. Но это не сработает, потому что пользовательским интерфейсом можно управлять только изнутри activity.
Итак, просто создайте анимацию и запустите ее. Android выполнит сброс 🙂 Я надеюсь, что смог помочь.
Комментарии:
1. Спасибо за ответ, но какая анимация поможет полностью изменить фоновое изображение кнопок ..?
2. Если я правильно понял вашу проблему — тогда да. Воспользуйтесь ссылкой в ответе и прокрутите вниз до самого низа. Есть пример, который показывает, как изменить фон. (В данном случае это ImageView, но это не должно иметь значения.)