如何在xml中使用形状可绘制器(Shape Drawable)绘制半椭圆形状(Android)

3

椭圆形状的Android布局

我遇到了在Android中创建UI的问题。我需要一种基于xml的解决方案。我不想使用任何SVG或PNG图像来实现解决方案。有没有办法在Android中实现此视图。

2个回答

0
你应该使用XML的<layer-list>元素来绘制这样的UI。 以下代码将用于创建椭圆形:
<shape android:shape="oval"
xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#AAAAAA"></solid>
<size android:height="100dp"
    android:width="60dp">
</size>

这导致了以下形状:

enter image description here

一旦你知道如何使用xml绘制椭圆形。现在你的下一步是学习如何使用<layer-list>来实现所需的输出。要学习使用<layer-list>,你可以参考this教程。


我尝试了许多方法,但是我无法得到这个图形。你能为我指点一下吗? - N.K.Sunil Sunilnk
在Android的drawable的android:shape属性中,您默认拥有基本形状,如椭圆形、圆形和矩形。但是它是有限制的,您不能使用它来绘制每一种形状。因此,您可以制作一个矢量图或PNG图片,以所需的形状为基础,并使用自定义drawable的layer-list组件将其他项目放置在其上方。我在我的答案中提供了一个链接,您可以参考该链接进行操作。 - Shoaib Anwar

0
通过创建一个新的drawable文件来描述您想要绘制的小部件的外观,或多或少。然后,您可以将其设置为要更改原始外观的小部件的背景。如果您想要实现问题中显示的形状,我建议从矩形开始。drawable文件将类似于以下内容:
<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <solid
        android:color="#000"/>

    <corners android:radius="150dp"/> <!-- The value here should specify How much ovally you want shape be -->
</shape>

然后将小部件的背景分配给此可绘制对象应该就可以了,类似于这样:

 <LinearLayout
    android:background="@drawable/oval">

希望这对你有所帮助 :D

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