2016-08-06 4 views
-1

Мне нужно рассчитать ширину и высоту числа элементов X в зависимости от общей ширины и высоты экрана в пикселях, чтобы я мог написать функцию. Отдельные элементы x и y должны быть одинаковыми для каждого элемента.Рассчитать максимальную ширину и высоту

Я знаю высоту и ширину экрана, но количество элементов может меняться.

Например, если у меня есть 20 элементов/кнопок, я хочу, чтобы они заняли весь экран, а также, если у меня есть 10 элементов/кнопок, я хочу, чтобы они заняли весь экран.

Пример: Экран 628x1289 и у меня есть 20 элементов. Как рассчитать размер каждого элемента?

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

Надеюсь, это имеет смысл, но, пожалуйста, дайте мне знать, если это не так.

Steve

P.S. Это кажется уместным, но я не эксперт по математике так понятия не имею, что именно они говорят ...

https://en.wikipedia.org/wiki/Knapsack_problem

Кажется, они уже знают, размер объектов, которые противоположно моим потребностям. У меня есть пробел и вы хотите знать, что x и y мне нужно, чтобы каждый объект соответствовал пространству.

+0

Разделите ширину на число элементов? Исключить пробелы между элементами, если они есть –

+0

Поместите их в несколько строк? И что делать, если у вас есть 13 элементов (или другое простое число)? – MBo

+0

@ Lưu Vĩnh Phúc - это легкая часть, но как насчет высоты? Я хочу, чтобы они заполнили весь экран не только шириной. – SteveF

ответ

0

Слишком много свободных параметров. Сделайте некоторые ограничения для решения задачи.

Пример: элемент пропорций Давайте (отношение ширина/высота) равны экран пропорции

C = ScreenWidth/ScreenHeight 

Теперь неизвестно высота элемент h, так что ширина w = C * h

Таким образом, каждая строка может содержать ScreenWidth div (C * h), каждый столбец ScreenHeight div h, где div является целым делением.

Теперь вы можете найти решение (макс h значение) неравенства

numberX <= (ScreenWidth div (C * h)) * (ScreenHeight div h) 

и получить высоту и ширину numberX элементов, заполняющих экран (последняя строка может быть неполной)

+0

Спасибо за ваш ответ. Я читал его несколько раз, но все еще не могу понять. :(Я буду пытаться и, надеюсь, это начнет иметь смысл. – SteveF

+0

Я не мог понять, как это сделать автоматически, поэтому я оставил его как пользовательский ввод. Это может быть лучшее решение на самом деле. Помогите! – SteveF