Как не дать изображениям стать больше, чем ограничения на их вид - PullRequest
0 голосов
/ 01 мая 2019

В течение двух дней я пытался настроить сетку изображений, которая масштабируется до размера экрана.Я хочу, чтобы сетка основывалась на процентных ограничениях, чтобы мне не приходилось жестко кодировать какие-либо конкретные размеры, а изображения автоматически уменьшаются до размера представления, с которым они связаны.

Первым, что я попробовал, был 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);
    }
}

Что я получаю, когда запускаю это изображениеотображается в полном размере, и все изображения в строке перекрывают друг друга в попытке остаться на экране.Это имело бы смысл для меня, если крайнее левое изображение начиналось с крайней левой направляющей, а самое правое изображение заканчивалось с крайней правой направляющей, но они шли до самого края.Как заставить мои кнопки соблюдать ограничения, установленные для них, и уменьшить изображение до размера этих ограничений?

Вот скриншот того, что я в настоящее время получаю

Вот еще, что я собираюсь (кроме не с маленькими иконками андроида, очевидно, не говоря уже о промежутках между кнопками)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...