Android ImageView:以时间间隔运行不同的ImageView

Android ImageView:以时间间隔运行不同的ImageView,android,imageview,Android,Imageview,我正在尝试制作一个活动,其中有一个按钮和三个图像视图(imgv1、imgv2、imgv3)。单击按钮后,将出现第一个imagview(imgv1)。在2秒之后,2秒将出现第二个图像视图(img2),2秒将出现第三个图像视图(imgv3) 下面是我正在使用的一段代码 final Button btn = (Button) findViewById(R.id.button); btn.setOnClickListener(new View.OnClickListener() {

我正在尝试制作一个活动,其中有一个按钮和三个图像视图(imgv1、imgv2、imgv3)。单击按钮后,将出现第一个imagview(imgv1)。在2秒之后,2秒将出现第二个图像视图(img2),2秒将出现第三个图像视图(imgv3)

下面是我正在使用的一段代码

     final Button btn = (Button) findViewById(R.id.button);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            img1.setVisibility(View.VISIBLE);
            final Handler handler = new Handler();
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    img2.setVisibility(View.VISIBLE);
                }
            }, 2000);


        }
    });
现在我只能运行2个ImageView,我不知道如何运行第三个映像

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/image1"
    android:visibility="gone"
    android:src="@drawable/wh1"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="true" />

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/image2"
    android:visibility="gone"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:src="@drawable/wh2" />

 <ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/image2"
    android:visibility="gone"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:src="@drawable/wh2" />

在这里的xml文件中,我将我的三个imageview可见性设置为不可见,因此它们只能在单击按钮时可见


如果有人有任何代码示例,请帮助我。我在一个ImageView中看到过很多关于这一点的帖子,它们改变了图像资源,但这与此不同,因此请帮助我..

在您的
活动中声明
int
namecount。然后你可以这样做:

 final Button btn = (Button) findViewById(R.id.button);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(final View v) {
            count = 0;
            final ImageView[] images = {(ImageView) findViewById(R.id.image1), (ImageView) findViewById(R.id.image2), (ImageView) findViewById(R.id.image3)};
            v.postDelayed(new Runnable() {
                @Override
                public void run() {
                    images[count].setVisibility(View.VISIBLE);
                    switch (count){
                        case 0:
                            images[1].setVisibility(View.GONE);
                            images[2].setVisibility(View.GONE);
                            break;
                        case 1:
                            images[0].setVisibility(View.GONE);
                            images[2].setVisibility(View.GONE);
                            break;
                        case 2:
                            images[0].setVisibility(View.GONE);
                            images[1].setVisibility(View.GONE);
                            break;
                    }
                    count++;
                    if (count == 2)
                        v.removeCallbacks(this);
                    else
                        v.postDelayed(this, 2000);

                }
            }, 2000);


        }
    });

活动中声明
int
namecount。然后你可以这样做:

 final Button btn = (Button) findViewById(R.id.button);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(final View v) {
            count = 0;
            final ImageView[] images = {(ImageView) findViewById(R.id.image1), (ImageView) findViewById(R.id.image2), (ImageView) findViewById(R.id.image3)};
            v.postDelayed(new Runnable() {
                @Override
                public void run() {
                    images[count].setVisibility(View.VISIBLE);
                    switch (count){
                        case 0:
                            images[1].setVisibility(View.GONE);
                            images[2].setVisibility(View.GONE);
                            break;
                        case 1:
                            images[0].setVisibility(View.GONE);
                            images[2].setVisibility(View.GONE);
                            break;
                        case 2:
                            images[0].setVisibility(View.GONE);
                            images[1].setVisibility(View.GONE);
                            break;
                    }
                    count++;
                    if (count == 2)
                        v.removeCallbacks(this);
                    else
                        v.postDelayed(this, 2000);

                }
            }, 2000);


        }
    });

与设置3个图像视图的可见性不同,您可以使用单个imageView,并通过使用
setImageResource()
方法或
setImageBitmap()
setImageDrawable()更改imageView的内容
方法。

您可以使用单个imageView,而不是设置3个图像视图的可见性,并通过使用
setImageResource()
方法或
setImageBitmap()
setImageDrawable()
方法更改imageView的内容。

是的,我看到了很多关于更改内容的帖子。但我想改变不同的imagviews,我计划根据imagviews播放音频。谢谢你,我看过很多关于改变内容的帖子。但我想改变不同的imagviews,我计划根据imagviews播放音频。谢谢,我忘记了run()方法中的postDelayed。它可以工作!,谢谢,先生,但我想在到达第三个图像时停止。我更改计数>2,第三个图像不显示条件是否为真,计数==2,谢谢,先生!:)现在试试,我忘记了run()方法中的postdayed。它可以工作!,谢谢,先生,但我想在到达第三个图像时停止。我更改计数>2,第三个图像不显示条件是否为真,计数==2,谢谢,先生!:)