如何使用xml中的可绘制形状绘制半椭圆形(Android)
Posted
技术标签:
【中文标题】如何使用xml中的可绘制形状绘制半椭圆形(Android)【英文标题】:How to draw a semi-oval shape using shape drawable in xml (Android) 【发布时间】:2017-06-22 17:01:49 【问题描述】:我对在 android 中创建 UI 的这个问题感到震惊。我需要一个基于 xml 的解决方案来解决这个问题。我不想使用任何 SVG 或 PNG 图像来实现解决方案。有没有办法在android中实现这个视图。
【问题讨论】:
【参考方案1】:您应该使用 xml 的 <layer-list>
元素来绘制这样的 UI。
以下代码将用于创建椭圆形:
<shape android:shape="oval"
xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#AAAAAA"></solid>
<size android:
android:>
</size>
这导致以下形状:
一旦您知道如何使用 xml 绘制椭圆形。现在您的下一步是学习如何使用<layer-list>
来实现所需的输出。要学习使用<layer-list>
,您可以遵循this 教程。
【讨论】:
我尝试了很多方法。我画不出来。你能告诉我这个吗? 在 android drawable 的android:shape
属性中默认有基本的形状,如椭圆、圆形、矩形。但它是有限的。你不能用它画出每一个形状。所以你可以做的是,有一个你想要的形状的矢量或png,并使用自定义drawable的layer-list
组件将其他项目放在它上面。我在回答中提供了一个链接,您可以参考。【参考方案2】:
通过创建一个新的可绘制文件,该文件将或多或少地描述您要绘制的小部件的外观。然后,您可以将其设置为要更改其原始外观的小部件的背景。如果您想获得问题中显示的形状,我建议您从矩形开始。可绘制文件看起来像这样:
<?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>
然后将小部件的背景分配给这个drawable应该可以解决问题,如下所示:
<LinearLayout
android:background="@drawable/oval">
希望这对您有所帮助:D
【讨论】:
以上是关于如何使用xml中的可绘制形状绘制半椭圆形(Android)的主要内容,如果未能解决你的问题,请参考以下文章