我是日食和制作应用程序的新手,我想用3张图片创建无限循环,每张图片轮流转为可见或不可见。 但是当我运行应用程序时,只有第二张图片才会显示一次,然后就会停止并注意到。 我需要做些什么让它发挥作用?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dk1 =(ImageView) findViewById(R.id.dkmain1);
dk2 =(ImageView) findViewById(R.id.dkmain2);
dk3 =(ImageView) findViewById(R.id.dkmain3);
dk1.setVisibility(View.VISIBLE);
dk2.setVisibility(View.INVISIBLE);
dk3.setVisibility(View.INVISIBLE);
if(dk1.getVisibility()==View.VISIBLE)
{
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
dk1.setVisibility(View.INVISIBLE);
dk2.setVisibility(View.VISIBLE);
dk3.setVisibility(View.INVISIBLE);
}
}, 2000);
}
if(dk2.getVisibility()==View.VISIBLE)
{
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
dk1.setVisibility(View.INVISIBLE);
dk2.setVisibility(View.INVISIBLE);
dk3.setVisibility(View.VISIBLE);
}
}, 2000);
}
if(dk3.getVisibility()==View.VISIBLE)
{
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
dk1.setVisibility(View.VISIBLE);
dk2.setVisibility(View.INVISIBLE);
dk3.setVisibility(View.INVISIBLE);
}
}, 3000);
}

答案 0 :(得分:0)
如果您将视图设置为不可见:
dk2.setVisibility(View.INVISIBLE);
然后检查它是否可见:
if(dk2.getVisibility()==View.VISIBLE)
它将始终评估为false,永远不会被执行。
我会考虑一种不同的方法,例如:
此外,您可以使用以下方式在布局中设置默认可见性:
android:visibility="visible|invisible|gone"
答案 1 :(得分:-1)
您需要设置Handlers
嵌套以确保它们逐个运行:
if(dk1.getVisibility()==View.VISIBLE)
{
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
dk1.setVisibility(View.INVISIBLE);
dk2.setVisibility(View.VISIBLE);
dk3.setVisibility(View.INVISIBLE);
//put your 2nd if here, and 3rd if INSIDE your 2nd if
if(dk2.getVisibility()==View.VISIBLE)
//rest of the 2nd if code, and out the 3rd if here
}
}, 2000);