【问题标题】:Questions about image random关于图像随机的问题
【发布时间】:2020-06-26 04:40:45
【问题描述】:

你好我是一个学习Java的初学者 我正在尝试创建随机图像输出 我制作的代码停止了,只出现了一张图片 我想要的是继续随机显示图像 我应该添加哪个代码? 请帮帮我

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        ImageView imageView_1 = findViewById(R.id.imageView_1);
      

        int[] images = {R.drawable.img_1, R.drawable.img_2, R.drawable.img_3, R.drawable.img_4, R.drawable.img_5};

            Random rand = new Random();

            imageView_1.setImageResource(images[rand.nextInt(images.length)]);
        
        }
}

【问题讨论】:

  • 您希望每隔几秒更换一次图像吗?这就是你想要的吗?
  • 您需要编写定期更改图像的代码。这可能会有所帮助:stackoverflow.com/questions/6425611/…
  • 我想做的是图像每秒随机变化。

标签: android image random


【解决方案1】:

先添加这个方法

 private Runnable showImageRandom=new Runnable() {
    @Override
    public void run() {

        Random rand = new Random();

        imageView.setImageResource(images[rand.nextInt(images.length)]);
        handler.postDelayed(this,2000);

    }
};

然后在你的 OnCreate 中添加这个处理程序

 handler=new Handler();
 handler.postDelayed(showRandomImage,2000);

2000 是时间延迟

int[] images = {R.drawable.img_1, R.drawable.img_2, R.drawable.img_3, 
 R.drawable.img_4, R.drawable.img_5};
 ImageView imageView_1;
 Handler handler;
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


     imageView_1 = findViewById(R.id.imageView_1);
    handler=new Handler();
    handler.postDelayed(showRandomImage,1000);
  

            
    }

private Runnable showImageRandom=new Runnable() {
 @Override
 public void run() {

    Random rand = new Random();

    imageView.setImageResource(images[rand.nextInt(images.length)]);
    handler.postDelayed(this,2000);

  }
  };

 

【讨论】:

  • 如果有帮助请点赞,否则请告诉我问题所在。我可以帮你
【解决方案2】:

试试这个希望这会奏效。您可以打印随机数是否正在生成。

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        ImageView imageView_1 = findViewById(R.id.imageView_1);
      

        int[] images = {R.drawable.img_1, R.drawable.img_2, R.drawable.img_3, R.drawable.img_4, R.drawable.img_5};

        int randomNumber = new Random().nextInt(images.length);
            

        imageView_1.setImageDrawable(getResources().getDrawable(images[randomNumber]));
        
        }
}

【讨论】:

  • 这段代码也只出现了一张图片并停止感谢您的评论
猜你喜欢
  • 1970-01-01
  • 2012-06-16
  • 1970-01-01
  • 1970-01-01
  • 2014-10-27
  • 2021-12-08
  • 1970-01-01
  • 2022-01-26
  • 1970-01-01
相关资源
最近更新 更多