ImageView.Visible 和 ImageView.Gone 不工作 android
ImageView.Visible and ImageView.Gone is not working android
我创建了代码,当我点击假设 A 图像时,B 图像应该显示 100 毫秒然后熄灭
我已经通过 Java 代码
做到了
public void changeRightDrum() {
System.out.println("RIGHT");
imageViewB.setVisibility(View.VISIBLE);
try {
Thread.sleep(100);
} catch (Exception e) {
e.printStackTrace();
}
imageViewB.setVisibility(View.GONE);
System.out.println("RIGHT DONE");
}
但是不工作 B 图像不显示
谁能帮我实现这个目标
您正在使用 sleep()
阻塞 UI 线程,并且无法真正执行任何 UI 更新。
不用睡觉,而是使用 Handler
和 postDelayed()
来安排 Runnable
到 运行 延迟。
像这样使用postDelayed
。
public void changeRightDrum() {
System.out.println("RIGHT");
imageViewB.setVisibility(View.VISIBLE);
imageViewB.postDelayed(new Runnable() {
@Override
public void run() {
imageViewB.setVisibility(View.GONE);
System.out.println("RIGHT DONE");
}
}, 100);
}
实现@laalto 所说的:
public void changeRightDrum() {
System.out.println("RIGHT");
imageViewB.setVisibility(View.VISIBLE);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
imageViewB.setVisibility(View.GONE);
System.out.println("RIGHT DONE");
}
},200);
}
我用这个实现了
new AsyncTask<Void, Void, Void>() {
@Override
protected void onPreExecute() {
imgPressedLeftTabla.setVisibility(View.VISIBLE);
super.onPreExecute();
}
@Override
protected void onPostExecute(Void result) {
imgPressedLeftTabla.setVisibility(View.GONE);
super.onPostExecute(result);
}
@Override
protected Void doInBackground(Void... params) {
try {
Thread.sleep(50);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}.execute();
我创建了代码,当我点击假设 A 图像时,B 图像应该显示 100 毫秒然后熄灭
我已经通过 Java 代码
做到了public void changeRightDrum() {
System.out.println("RIGHT");
imageViewB.setVisibility(View.VISIBLE);
try {
Thread.sleep(100);
} catch (Exception e) {
e.printStackTrace();
}
imageViewB.setVisibility(View.GONE);
System.out.println("RIGHT DONE");
}
但是不工作 B 图像不显示
谁能帮我实现这个目标
您正在使用 sleep()
阻塞 UI 线程,并且无法真正执行任何 UI 更新。
不用睡觉,而是使用 Handler
和 postDelayed()
来安排 Runnable
到 运行 延迟。
像这样使用postDelayed
。
public void changeRightDrum() {
System.out.println("RIGHT");
imageViewB.setVisibility(View.VISIBLE);
imageViewB.postDelayed(new Runnable() {
@Override
public void run() {
imageViewB.setVisibility(View.GONE);
System.out.println("RIGHT DONE");
}
}, 100);
}
实现@laalto 所说的:
public void changeRightDrum() {
System.out.println("RIGHT");
imageViewB.setVisibility(View.VISIBLE);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
imageViewB.setVisibility(View.GONE);
System.out.println("RIGHT DONE");
}
},200);
}
我用这个实现了
new AsyncTask<Void, Void, Void>() {
@Override
protected void onPreExecute() {
imgPressedLeftTabla.setVisibility(View.VISIBLE);
super.onPreExecute();
}
@Override
protected void onPostExecute(Void result) {
imgPressedLeftTabla.setVisibility(View.GONE);
super.onPostExecute(result);
}
@Override
protected Void doInBackground(Void... params) {
try {
Thread.sleep(50);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}.execute();