У меня есть ImageButton, который объявлен в моем макете xml. Я сказал, когда он щелкнут, чтобы вызвать определенный метод, playSound.onClick событие с задержкой
Внутри playSound телефон воспроизводит звук, который длится определенное время, 5277 мс, если быть точным. Я хочу, чтобы playSound смог изменить ImageResource в ImageButton на определенное количество времени (5400 мс), а затем изменить его.
Вот мой код:
ImageButton dBellButt;
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.activity_main);
dBellButt.setImageResource(R.drawable.doorbell2);
public void playSound(View view) {
dBellButt.setImageResource(R.drawable.doorbell);
dBell.start();
if (vibeOn) {
Vibrator vibe = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vibe.vibrate(500);
} else {
// No vibration
}
try {
Thread.sleep(5400);
} catch (InterruptedException e) {
}
dBellButt.setImageResource(R.drawable.doorbell2);
}
doorbell2
является изображение освещенного дверного звонка. doorbell
- изображение неосвещенного дверного звонка.
Я могу переключить положение двух изображений, и он будет работать нормально, т. Е. Если у меня будет установлен дверной звонок, когда кнопка будет нажата, он будет гореть до 5400 мс, после чего изображение изменения. Если я создам приложение с «зажженным» дверным звонком, я не могу его вообще изменить.
Надеюсь, это имело смысл.
Короче говоря, я не могу заставить ImageButton изменить ImageResource. setImageResource
после Thread.sleep();
отлично работает, но до этого нет.
Почему это не работает?
Спасибо!
Натан
EDIT:
Фигурный Я бы присоединить мой XML всякий случай.
<ImageButton
android:id="@+id/dBellButton"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:scaleType="fitCenter"
android:padding="0dp"
android:background="@null"
android:onClick="playSound"
android:contentDescription="@string/ImgDesc" />
Приветствия