Создайте VectorDrawable custom_progressbar_shape.xml
в качестве файла ресурса.Создайте нужную фигуру, используя android:pathData
(см. Эту ссылку для получения дополнительной информации о VectorDrawable pathData ), например, созданный мной треугольник, аналогичный предоставленной вами форме:
custom_progressbar_shape.xml
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/custom"
android:height="100dp"
android:width="100dp"
android:viewportHeight="100"
android:viewportWidth="60">
<group
android:name="triableGroup">
<path
android:name="triangle"
android:fillColor="#7ed9f0"
android:pathData="M 0,0 L 50,0 L 0,100 z" />
</group>
</vector>
Добавьте этот VectorDrawable к вашему данному Drawable, скажем custom_progressbar_horizontal.xml
следующим образом:
custom_progressbar_horizontal.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background"
android:drawable="@drawable/custom_progressbar_shape"
android:gravity="center_vertical|fill_horizontal">
...
</item>
...
</layer-list>
Используйте этот Drawable как ваш собственный стиль ProgressBar внутри styles.xml
:
<style name="MyProgressBarStyle" parent="@style/Widget.AppCompat.ProgressBar.Horizontal">
<item name="colorControlActivated">#7ed9f0</item>
<item name="colorControlHighlight">#b3e5fc</item>
<item name="android:progressDrawable">@drawable/custom_progressbar_horizontal</item>
<item name="android:minWidth">200dp</item>
</style>
А затем установите этот стиль на ProgressBar
в XML-файле макета:
<ProgressBar
android:id="@+id/MyProgressBar"
android:padding="10dp"
android:layout_margin="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/MyProgressBarStyle"
android:progress="30"
android:secondaryProgress="60"/>