如何在XML使用形状绘制画一个半椭圆形(安卓)
问题描述:
我击中了创造的Android UI的这个问题。我需要一个基于xml的解决方案来解决这个问题。我不想使用任何SVG或PNG图像来实现解决方案。有没有什么办法可以在android中实现这个视图。
答
您应该使用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>
这导致到如下形状:
一旦你知道如何使用XML来绘制一个椭圆形。现在下一步是学习如何使用<layer-list>
来实现所需的输出。要学习使用<layer-list>
,您可以按照this教程。
答
通过创建一个新的可绘制文件,它将描述您想要绘制的小部件的外观,或多或少。然后,您可以将其设置为要更改其原始外观的小部件的背景。如果您想要达到问题中显示的形状,我会建议从矩形开始。提拉文件将是这个样子:
<?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
我尝试了很多方法。我无法做出这个数字。你能在这方面给我启发吗? –
默认情况下,你在android drawable的'android:shape'属性中具有椭圆,圆形,矩形等基本形状。但它是有限的。你不能使用它来绘制每个形状。所以你可以做的是,将一个vector或png制成你想要的形状,并使用自定义drawable的'layer-list'组件将其他项放在它的顶部。我在我的答案中提供了一个链接,您可以参考这个链接。 –