Да, это может помочь вам с шириной приложения: layout_constraintWidth_percent = "0.33" ConstraintLayout имеет много преимуществ, которые вы можете использовать для построения представлений, используя только родительский
ВАНИЕ
Как мне создать вид, похожий на этот.
Я хотел бы нарисовать вид на экране, который представляет собой линию, разбитую на сегменты, показывающие значения в процентах от всего вида. Мои требования
вид имеет разные разделы, которые разных цветовпредставление может отображать не все разделы, оно может иметь только первые 2 или первый и последний или только один цвет и т. д. - это известно только во время выполненияразмер различных разделов известен только во время выполнения, поэтому необходимо указывать программнолевый и правый углы всего вида закругленыИДЕИ / Вещи, которые я испытал
(1) Пользовательский вид рендеринга 3 прямоугольника рядом
Я попробовал пользовательский вид, который отображает 3 прямоугольника рядом. Но они, очевидно, имеют квадратные углы.
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int viewHeight = 50;
canvas.drawrect(0, 0, 60, viewHeight, paint); // A
canvas.drawrect(60, 0, 120, viewHeight, paint); // B
canvas.drawrect(120,0, 180, viewHeight, paint); // C
}
(2) Форма с закругленными углами
Я знаю, что могу использовать форму, чтобы определить прямоугольник со скругленными углами, используя следующее, но это один цвет.
<shape xmlns:android="http://schemas.android.com/apk/res/android">
...
<corners
android:radius="4dp" />
....
</shape>
(3) Список слоев
ИзAndroid прямоугольник с двумя разными цветамиЯ вижу, что могу использовать список слоев, чтобы указать каждый элемент в форме, чтобы иметь разные цвета.
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<size
android:width="40dp"
android:height="40dp" />
<solid android:color="#F86F05" />
</shape>
</item>
<item android:top="10dp">
<shape android:shape="rectangle">
<size
android:width="30dp"
android:height="30dp" />
<solid android:color="#B31F19" />
</shape>
</item>
</layer-list>
(4) Список слоев с углами ??
Могу ли я добавить тег «углы» ко всему списку слоев, чтобы получить закругленные основные углы? Я предполагаю, что нет, и что угловая часть должна быть в тегах формы "Item".
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<corners
android:radius="4dp" />
<item>
<shape android:shape="rectangle">
<size
android:width="40dp"
android:height="40dp" />
<solid android:color="#F86F05" />
</shape>
</item>
<item android:top="10dp">
<shape android:shape="rectangle">
<size
android:width="30dp"
android:height="30dp" />
<solid android:color="#B31F19" />
</shape>
</item>
</layer-list>
РЕЗЮМЕ
Этот последний приближается к моему требованию, однако
Как я могу указать ширину каждого "элемента" программнокак показать / скрыть "элемент" программнокак бы я закруглил только верхние наиболее видимые верхние углы "предмета" и нижние самые нижние углы "предмета"ОБНОВЛЕНИЕ: КАК ДОБАВИТЬ ЛИФТ / СЕРУЮ ГРАНИЦУ
Спасибо "@ 0X0nosugar" за ваше решение. Теперь я хочу добавить высоту или небольшую серую границу, поскольку один из цветов очень светлый и близок к цвету фона. Когда я добавляю следующее, я получаю прямоугольную тень, которая выглядит ужасно с изогнутыми углами.
android:elevation="2dp"
android:outlineProvider="bounds"
Я хотел бы, чтобы это появилось как ниже