Я разрабатываю приложение для Android. Есть шесть основных переменных long
, которые отображаются на экране в любое время. Они непрерывно увеличиваются с использованием таймера в отдельном потоке. Пользователь может наблюдать, как эти переменные увеличиваются на экране. Каждая из этих переменных имеет максимальную сумму.Программно заданная ширина представления
Что бы я хотел сделать, это нарисовать «индикатор выполнения» для каждой из этих переменных. На данный момент я использую View
с сплошным красным цветом.
Пожалуйста, смотрите ниже прототипа:
Красная полоса слева будет представлять собой переменную, которая достигла это максимальная сумма, в то время как другие являются пустыми и бар имеет ширину 0, так и невидимо. Каждая переменная помещается в RelativeLayout
(который представляет собой один раздел), который затем помещается в LinearLayout
. В будущем я, возможно, придется добавить/удалить некоторые - поэтому решение не должно опираться на жестко заданные расположения макета.
Вопрос в том, как я могу программно установить ширину этих «индикаторов выполнения» в коде, а не жестко кодировать координаты компоновки любой из переменных?
Извините, но я не понимаю, как это работает. Я не знаю, что представляют переменные 'width' и' height' - ширина/высота представления? Я не знаю, как получить эту информацию. –
'LinearLayout',' RelativeLayout' и т. Д. - это все 'ViewGroup', которые содержат другие представления как дочерние элементы, такие как' ImageView' для изображений или TextView для текстов. Эти 'ViewGroup' также могут содержать другие' ViewGroups' в качестве дочерних элементов, например 'LinearLayout' в' LinearLayout' или в вашем случае 'RelativeLayout' в' LinearLayout'. Мы используем 'LayoutParams', чтобы описать и рассказать родительским представлениям о том, насколько широка и насколько высоки наши представления (следовательно,' width' и 'height' как параметры). Как только мы укажем измерение, мы применяем их к 'View', мы хотим изменить размер - это в вашем случае ** yourLinearLayout ** – Toshe
Извините, я думаю, вы неправильно поняли - я не хочу изменять размер' LinearLayout' - Я хочу изменить размер только 'View' внутри него, который действует как индикатор выполнения. –