首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当使用随机时,每个ImageView如何显示不同的图片?Android Studio

当使用随机时,每个ImageView如何显示不同的图片?Android Studio
EN

Stack Overflow用户
提问于 2015-09-28 20:17:49
回答 4查看 1.7K关注 0票数 0

我有4个随机设置的图像,但当我测试出来,结果显示相同的图片。我希望每个图像视图显示与其他图像不同的图像。

这是我的密码:

代码语言:javascript
运行
复制
 final ImageButton imageButton=(ImageButton) findViewById(R.id.imageView);
        imageButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                imageButton.setVisibility(View.INVISIBLE);
                pic1 = (ImageView) findViewById(R.id.imageView2);
                pic2 = (ImageView) findViewById(R.id.imageView3);
                pic3 = (ImageView) findViewById(R.id.imageView4);
                pic4 = (ImageView) findViewById(R.id.imageView5);

                Random rand = new Random();
                int rndInt = rand.nextInt(4) + 1;
                String imgName = "img" + rndInt;
                int id = getResources().getIdentifier(imgName, "drawable", getPackageName());
                pic1.setImageResource(id);
                pic2.setImageResource(id);
                pic3.setImageResource(id);
                pic4.setImageResource(id);

            }
        });
EN

Stack Overflow用户

回答已采纳

发布于 2015-09-28 20:54:42

这是我的回答,其他的时间只显示了4个不同的图像。我的解决方案提供,这些图像是随机的,不完全相同:

代码语言:javascript
运行
复制
            final ImageButton imageButton=(ImageButton) findViewById(R.id.imageView);
                    imageButton.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            imageButton.setVisibility(View.INVISIBLE);
                            pic1 = (ImageView) findViewById(R.id.imageView2);
                            pic2 = (ImageView) findViewById(R.id.imageView3);
                            pic3 = (ImageView) findViewById(R.id.imageView4);
                            pic4 = (ImageView) findViewById(R.id.imageView5);

                            ArrayList<Integer> imageIds= new ArrayList<>(Arrays.asList(1, 2, 3, 4))
                            Collections.shuffle(imageIds);

                            pic1.setImageResource(getResources().getIdentifier("img" + imageIds[0], "drawable", getPackageName()));
                            pic2.setImageResource(getResources().getIdentifier("img" + imageIds[1], "drawable", getPackageName()));
                            pic3.setImageResource(getResources().getIdentifier("img" + imageIds[2], "drawable", getPackageName()));
                            pic4.setImageResource(getResources().getIdentifier("img" + imageIds[3], "drawable", getPackageName()));

                        }
                    });

同样,您也不必更改大量代码才能使其工作;)对不起,我将所有内容都打包在一行中。但是我真的很累,因为在德国已经快午夜了。

票数 2
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32831092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档