我有一个ImageButton在我的布局xml中声明。我已经告诉它,当它被点击时,调用某种方法,playSound。延迟onClick事件
在playSound的内部,手机会播放持续一定时间的声音,准确地说是5277 ms。我希望playSound能够将ImageButton的ImageResource更改一段时间(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。 Thread.sleep();
后setImageResource
工作正常,但它之前没有。
这是怎么回事?
谢谢!
弥敦道
编辑:
想我会附上我的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" />
干杯