有什么办法可以创建半圆形的形状吗?

时间:2019-01-03 10:47:05

标签: android android-drawable android-shape

我想为我的应用创建特殊视图。它是垂直虚线,顶部和底部分别是两个半圆。有什么方法可以将其创建为单一形状的可绘制对象吗?我做了虚线,但不能做半圈。

应该看起来像这样。

enter image description here

虚线垂直线:

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="90" android:toDegrees="90">
    <shape
            android:shape="line">
        <stroke
                android:color="#777777"
                android:dashWidth="7dp"
                android:dashGap="5dp"
                android:width="2dp"/>
    </shape>
</rotate>

我发现有人试图做半圈,但是圈很大。我只需要一个小圈。而且它甚至不是圆圈。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners
            android:bottomLeftRadius="100000dp"
            android:topLeftRadius="0dp"
            android:bottomRightRadius="100000dp"
            android:topRightRadius="0dp" />

    <solid android:color="#777777" />
</shape>

2 个答案:

答案 0 :(得分:2)

您可以借助android中的Canvas绘制整个视图。并使用Path定义其外观,并使用Paint对象定义其颜色。

答案 1 :(得分:1)

half_circle.xml下用此行创建drawable文件

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#8C9AEE"/>
    <size
    android:width="120dp"
    android:height="60dp"/>
   <corners
    android:topLeftRadius="60dp"
    android:topRightRadius="60dp"/>
</shape>

half_circle.xml设置为布局背景

输出将类似于:

enter image description here