如何在Android XML中绘制圆弧?

时间:2018-08-22 03:56:51

标签: android xml

我想绘制一个弧形作为Android XML对象。我需要它是xml,而不是Drawable,我可以用编程方式进行编码(这太简单了!),因为我需要它来用作通知图标。

我知道如何编码圆和圆环,并且可以在矩形上使用半径来使四分之一/半圆更好。但是,我不知道如何在xml中仅编码任何弧度(例如30度)。有可能吗?

3 个答案:

答案 0 :(得分:2)

XML仍然是Drawable资源,而SVG在其中被称为vectorpath。您可以使用任何工具创建矢量路径,然后将其用作pathData。此类文件的正确位置是src/main/res/drawable-nodpi,这里是一个示例path(并且可以将其中几个放入这样的vector中):

<?xml version="1.0" encoding="utf-8"?>
<vector
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:viewportWidth="500.0"
    android:viewportHeight="500.0"
    android:width="50dp"
    android:height="50dp">

    <path
        android:fillColor="@color/colorAccent"
        android:pathData="M 250 250 A 100 100 0 0 0 450 250 Z"/>

</vector>

实际知道的“如何绘制圆弧”(具有上述路径的值):

vector path construction

与此同时,Android Studio甚至为此提供了一个“预览”标签:

AS screenshot, XML preview

答案 1 :(得分:1)

对我来说,解决方案非常简单。我必须使用Figma来创建Arc。

注意:没关系,您是否具有使用Figma或任何与此相关的设计工具的经验。这是一个非常简单明了的过程,只需不到5分钟即可实现。


现在,让我们开始好吧...

  • 第一步是download the Figma Desktop app并绘制一条弧。 This short video大致总结了如何绘制圆弧。

  • 第二步是将圆弧导出为SVG文件。同样,这是一个简单的过程,this 51-second video总结了这个过程。

  • 最后一步是将SVG文件添加到Android studio。为此,请转到 File> New> Vector Asset ,然后在弹出的菜单中选择 Local File 。总而言之,您应该会看到类似下面的菜单。请注意,我的SVG本地文件的名称是arc.svg。

enter image description here

答案 2 :(得分:0)

Arc就像一个四分之一圆。因此,您需要绘制矩形以形成弧形。 下面的代码是使用矩形绘制圆弧:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size android:height="15dp" android:width="15dp"/>
<solid android:color="@color/darkGray"/>
<corners android:topRightRadius="0dp" android:bottomRightRadius="15dp"/>
</shape>