В течение двух дней я пытался настроить сетку изображений, которая масштабируется до размера экрана.Я хочу, чтобы сетка основывалась на процентных ограничениях, чтобы мне не приходилось жестко кодировать какие-либо конкретные размеры, а изображения автоматически уменьшаются до размера представления, с которым они связаны.
Первым, что я попробовал, был GridLayout с конкретными ограничениями на количество просмотров в каждой строке.Однако, когда я вставляю изображение, строки переносятся за пределы экрана.Когда это не сработало, я попробовал серию руководств и создание представлений в Java.Затем я бы ограничил представления также Руководством по Java.Несмотря на тот факт, что представления были полностью ограничены, все это все равно будет переопределено размером изображения, которое помещалось в представление.
for(int y = 0; y < 9; y++)
{
buttons.add(new ArrayList<ImageButton>());
for(int x = 0; x < 9; x++)
{
//create the button, and assign it's image to it
ImageButton imageButton = new ImageButton(SimulationActivity.this);
imageButton.setImageResource(R.drawable.ant01);
imageButton.setId(View.generateViewId());
constraintLayout.addView(imageButton);
buttons.get(y).add(imageButton);
//add the constraints for the button
ConstraintSet constraintSet = new ConstraintSet();
constraintSet.clone(constraintLayout);
constraintSet.connect(imageButton.getId(), ConstraintSet.LEFT, guidelines.get(x).getId(), ConstraintSet.RIGHT, 0);
constraintSet.connect(imageButton.getId(), ConstraintSet.RIGHT, guidelines.get(x + 1).getId(), ConstraintSet.LEFT, 0);
constraintSet.setDimensionRatio(imageButton.getId(), "1:1");
if(y == 0)
{
constraintSet.connect(imageButton.getId(), ConstraintSet.TOP, upButton.getId(), ConstraintSet.BOTTOM, 8);
}
else
{
constraintSet.connect(imageButton.getId(), ConstraintSet.TOP, buttons.get(y - 1).get(0).getId(), ConstraintSet.BOTTOM,0);
}
constraintSet.applyTo(constraintLayout);
}
}
Что я получаю, когда запускаю это изображениеотображается в полном размере, и все изображения в строке перекрывают друг друга в попытке остаться на экране.Это имело бы смысл для меня, если крайнее левое изображение начиналось с крайней левой направляющей, а самое правое изображение заканчивалось с крайней правой направляющей, но они шли до самого края.Как заставить мои кнопки соблюдать ограничения, установленные для них, и уменьшить изображение до размера этих ограничений?
Вот скриншот того, что я в настоящее время получаю
Вот еще, что я собираюсь (кроме не с маленькими иконками андроида, очевидно, не говоря уже о промежутках между кнопками)