创建一个只有两个圆边的矩形形状

问题描述:

我可以创建一个矩形,所有边圆角的形状。但是,我想要的是一个矩形形状,只有2个边缘是圆形的。这可能吗?创建一个只有两个圆边的矩形形状

我本质上是一起砍一个ListView,看起来像一个圆边的泡泡。我正在寻找添加一个标题,其中包含两个顶部边缘圆角和两个底部边缘圆角的页脚。

我将android:radius属性更改为android:topRightRadiusandroid:topLeftRadius

+1

运行应用程序后,它将被视为完美。 – 2016-05-06 09:55:35

绘制一个圆角矩形,然后用相同的颜色在圆角的一个上绘制一个正常的矩形。

我会尝试绘制一个圆角的矩形,然后再添加两个与圆角矩形的圆角半径相同尺寸的矩形,并将它们放在不想四舍五入的角中。

因此,例如,一个半径为15px的圆角矩形和两个常规矩形15x15px,放置在圆角矩形的角部,不应该圆角。

编辑:重新阅读你的问题,你可能会更好地为你的listview的顶部和底部做一个简单的9-patch图像。无需像素化,它们就可以伸展到任何尺寸。然而,这需要您事先创建图像,而使用矩形形状的东西在以后的代码中更容易修改。但是,9补丁的方式不会成为黑客攻击。

+0

...加上:你需要画不仅是九补丁,但不同的覆盖不同的屏幕密度。这使得它比必要的更复杂。我宁愿在代码中做,并根据矩形的大小来调整像素的圆半径。 – Zordid 2013-06-10 14:47:45

我认为最好的(我的你的问题的理解)是创建一个9patch图像,并使用它作为背景 - 可以定义舒展,因为你需要,并在XML级别设置节省一些代码工作

可能您觉得此内容有用。

<?xml version="1.0" encoding="utf-8"?> 
<!-- res/drawable/rounded_edittext.xml --> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" android:padding="10dp"> 
<solid android:color="#FFFFFF"/> 
    <corners 
    android:bottomRightRadius="0dp" 
    android:bottomLeftRadius="0dp" 
    android:topLeftRadius="15dp" 
    android:topRightRadius="15dp"/> 
</shape> 
+0

形状 – 2014-11-12 17:39:48

+0

中没有填充属性,它将在运行应用程序后看起来很完美。 – 2016-05-06 09:54:19

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" android:padding="10dp"> 
<solid android:color="#FFFFFF"/> 
<corners 
android:bottomRightRadius="0dp" 
android:bottomLeftRadius="0dp" 
android:topLeftRadius="15dp" 
android:topRightRadius="15dp"/> 
</shape> 

使用上面的代码

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" android:padding="10dp"> 
<solid android:color="#FFFFFF"/> 
<corners 
android:bottomRightRadius="0dp" 
android:bottomLeftRadius="0dp" 
android:topLeftRadius="15dp" 
android:topRightRadius="15dp"/> 
</shape> 

该代码只是工作(因为?)的Android 2.2版本。谈到documentation,代码应该如下所示:

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" android:padding="10dp"> 
<solid android:color="#FFFFFF"/> 
<corners 
android:radius="2dp" 
android:bottomRightRadius="0dp" 
android:bottomLeftRadius="0dp" 
android:topLeftRadius="15dp" 
android:topRightRadius="15dp"/> 
</shape> 
+5

在我的情况下,它没有在xml编辑器中正确显示。运行您的代码以正确查看它。 – 2013-01-22 16:40:31

+2

对我来说,似乎xml编辑器并不尊重不同半径的角落。 – WindRider 2013-03-23 22:00:51

+0

运行应用程序后,它将被视为完美。 – 2016-05-06 09:55:29