2017-06-22 124 views

回答

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教程。

+0

我尝试了很多方法。我无法做出这个数字。你能在这方面给我启发吗? –

+0

默认情况下,你在android drawable的'android:shape'属性中具有椭圆,圆形,矩形等基本形状。但它是有限的。你不能使用它来绘制每个形状。所以你可以做的是,将一个vector或png制成你想要的形状,并使用自定义drawable的'layer-list'组件将其他项放在它的顶部。我在我的答案中提供了一个链接,您可以参考这个链接。 –

0

通过创建一个新的可绘制文件,它将描述您想要绘制的小部件的外观,或多或少。然后,您可以将其设置为要更改其原始外观的小部件的背景。如果您想要达到问题中显示的形状,我会建议从矩形开始。提拉文件将是这个样子:

<?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