在Android中使用xml在drawable中创建弧形的弯曲线

3

我做了什么...

<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>

它可以旋转但不能弯曲。需要将其弯曲成弧形。

有任何想法?


请问,您解决了这个问题吗?我也遇到了完全相同的问题! :) - Ivan
我使用了一张图片,快速简便。没有进一步尝试,如果您找到解决方案,请发布它。 - johnrao07
我正在尝试以编程方式使用ArcShape来完成它。 - Ivan
这个线程可能会有所帮助,你只需要增加圆周长,就可以得到你想要的弧形 https://dev59.com/EXPYa4cB1Zd3GeqPfB7E - johnrao07
好的,我的问题有点不同,我需要在圆形上创建一个暗色半透明的切片,不管怎样,我认为既然你必须弯曲它,那么它可能是一样的。我找到了一个解决方案,它涉及一些编程更改,但并不太难。如果你想,我稍后会发布我的解决方案。 - Ivan
1个回答

3

您可以绘制一个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"
    />

你可以动态设置进度条并且很容易地对它进行动画处理。
*使用dimen资源值。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接