/ / Опитвам се да направя ImageView Array да остане в границите на екрана -

Опитвам се да направя ImageView Array да остане в границите на екрана -

Искам да създам 10 ImageViews в случайна позиция и искам да бъдат същите, опитах да използвам ImageView[], Получих размера на екрана (ширина и височина) и създадох произволно място за всеки ImageView (в обхвата на размера на екрана). Някои от ImageViews са извън границите, тъй като понякога има 7,8 ImageViews Мога да видя. тук е моят код:

 ImageView ball[], you;
int layoutwidth, layoutheight;
Random rand = new Random();
RelativeLayout rlt;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rlt = (RelativeLayout) findViewById(R.id.rlt);
you = (ImageView) findViewById(R.id.imageView);
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
layoutwidth = size.x;
layoutheight = size.y;
ball = new ImageView[11];
for (int i = 0; i < 10; i++) {
ball[i] = new ImageView(this);
ball[i].setTag(i);
ball[i].setBackgroundResource(R.mipmap.ball);
int randomx = rand.nextInt(layoutwidth+1);
int randomy = rand.nextInt(layoutheight+1);
ball[i].setX(randomx);
ball[i].setY(randomy);
rlt.addView(ball[i]);
}
}

Как мога да направя кода да работи, когато имам нужда от него?

Отговори:

0 за отговор № 1

Можете да опитате да го замените

int randomx = rand.nextInt(layoutwidth+1);
int randomy = rand.nextInt(layoutheight+1);
ball[i].setX(randomx);
ball[i].setY(randomy);
rlt.addView(ball[i]);

с

int randomx = rand.nextInt(layoutwidth+1-widthOfImageView);
int randomy = rand.nextInt(layoutheight+1-heightOfImageView);
rlt.addView(ball[i]);
ball[i].setTranslationX(randomx);
ball[i].setTranslationY(randomy);

където widthOfImageView, heightOfImageView е ширина и височина на изображението