Создание изогнутой линии как дуги в Android с использованием XML в Drawable

Что я сделал..

<item>
    <rotate
        android:fromDegrees="40"
        android:toDegrees="20"
        android:pivotX="25%"
        android:pivotY="50%" >
        <shape
            android:shape="line"
            android:top="1dip" >
            <stroke
                android:width="1dip"
                android:color="#FF0000" />
        </shape>
    </rotate>
</item>

Он вращается, но не сгибается. Это должно быть согнуто, чтобы сформировать дугообразную форму

Любая идея?

1 ответ

Вы можете нарисовать ring формировать, вращать его в зависимости от ваших предпочтений и использовать его с ProgressBar как progressDrawable с заданным прогрессом.

drawable.xml

<?xml version="1.0" encoding="utf-8"?>
<rotate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="150"
    android:toDegrees="150">

    <shape
        android:shape="ring"
        android:thickness="10dp"
        android:innerRadius="20dp"
        android:useLevel="true"><!-- this line fixes the issue for lollipop api 21 -->

        <solid android:color="@color/colorPrimary"/>

    </shape>
</rotate>

layout.xml

<ProgressBar
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="120dp"
    android:layout_height="120dp"
    android:progressDrawable="@drawable/widget_arc"
    android:indeterminate="false"
    android:max="100"
    android:progress="67"
    />

Вы можете установить прогресс динамически, а также легко анимировать его

* Используйте значения измерений

Другие вопросы по тегам