隐藏 - 在Android中随机显示图像

时间:2014-05-17 21:58:49

标签: java android android-imageview

您好我是Android的初学者并开发游戏。目前我正试图让一些图像出现在屏幕上。我将布局中的图像设置为数组,我希望索引随机生成以显示图像。我的问题是,一开始我想隐藏图像然后在游戏开始后它们随机出现。这是我的代码。提前谢谢。

package com.example.evo;


import android.app.Activity;

import java.util.Random;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;

public class Play extends Activity {

private ImageView iv1, iv2, iv3,iv4,iv5,iv6;
private ImageView[] IMGS = { iv1, iv3, iv3, iv4, iv5, iv6 };

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.play_game);

    iv1 = (ImageView) findViewById(R.drawable.player);
    iv2 = (ImageView) findViewById(R.drawable.player);
    iv3 = (ImageView) findViewById(R.drawable.player);
    iv4 = (ImageView) findViewById(R.drawable.player);
    iv5 = (ImageView) findViewById(R.drawable.player);
    iv6 = (ImageView) findViewById(R.drawable.player);

    IMGS[0] = iv1;
    IMGS[1] = iv2;
    IMGS[2] = iv3;
    IMGS[3] = iv4;
    IMGS[4] = iv5;
    IMGS[5] = iv6;



   while(true) {


       Random random = new Random();
       int rndIndex = random.nextInt(IMGS.length);



    }
}

3 个答案:

答案 0 :(得分:0)

将setVisibility()方法与值VISIBLE / GONE一起使用。

iv1.setVisibility (View.GONE)

答案 1 :(得分:0)

您可以使用.setVisiblity(int visibility)隐藏或显示您的ImageViews(根据http://developer.android.com/reference/android/view/View.html#setVisibility%28int%29)。

在您的情况下,您应该能够:

Random random = new Random();
int rndIndex = random.nextInt(IMGS.length);
IMGS[rndIndex].setVisibility(View.VISIBLE);

显示视图。为了隐藏最后一个,我建议用你的数组定义rndIndex以便你可以做

IMGS[rndIndex].setVisibility(View.GONE);

在上面的代码块之前,意味着它看起来更像是:

IMGS[rndIndex].setVisibility(View.GONE);
Random random = new Random();
rndIndex = random.nextInt(IMGS.length);
IMGS[rndIndex].setVisibility(View.VISIBLE);
祝你好运!

答案 2 :(得分:0)

关于您希望从头开始隐藏图片的部分,您可以在 xml 中为每个imageView添加tag android:visibility = "gone"

在你的代码中,而(true)会使布局无响应你应该制作一个重复的线程或一个可以帮助你重复调用该函数的计时器

关于隐藏和显示imageViews

IMGS[0].setVisibility(View.VISIBLE); // to show the image
IMGS[0].setVisibility(View.GONE); // to hide the image

我认为你使用 drawable 而不是id来从 xml 获取imageView,并且你使用的是同一个图像