【问题标题】:Android ImageView: Running Different ImageViews with time intervalsAndroid ImageView:以时间间隔运行不同的 ImageView
【发布时间】:2015-09-06 13:25:05
【问题描述】:

我正在尝试进行一项活动,其中我有一个 按钮三个 imageview(imgv1,imgv2,imgv3)。单击按钮后,将出现第一个 imagview(imgv1)。 2 秒后,第二个 imageview(img2) 会出现 2 秒,第三个 imageview(imgv3) 会出现 2 秒。

这是我正在使用处理程序工作的一段代码。

     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
    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 更改图像资源中看到了很多关于此的帖子,但这与此不同,所以请帮助我..

【问题讨论】:

    标签: android imageview


    【解决方案1】:

    在您的Activity 中声明intname count。然后你可以这样做:

     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);
    
    
            }
        });
    

    【讨论】:

    • 现在试试,我忘记了run()方法里面的postDelayed。
    • 它有效!谢谢你,先生,但我想在它到达第三张图片时停下来
    • i change count>2 ,第三张图片不显示条件是否为真,count==2,谢谢先生! :)
    【解决方案2】:

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

    【讨论】:

    • 是的,我看过很多关于更改内容的帖子。但我想要的是改变不同的 imagviews,我计划在每个 imagviews 中放置音频。谢谢
    猜你喜欢
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 2019-01-07
    • 2015-05-27
    • 2016-08-18
    • 1970-01-01
    相关资源
    最近更新 更多