我可以创建一个矩形的形状,所有边都是圆角的。但是,我想要的是一个矩形形状,只有2个边缘是圆形的。这可能吗?
我基本上将ListView看起来像一个带有圆边的气泡。我想添加一个标题,其中两个顶部边缘是圆形的,页脚是两个底部边缘倒圆。
答案 0 :(得分:42)
<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>
答案 1 :(得分:19)
您可能会觉得这很有帮助。
<?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>
答案 2 :(得分:17)
我将android:radius
属性更改为android:topRightRadius
和android:topLeftRadius
答案 3 :(得分:2)
我认为最好(根据我对你的问题的理解)是创建一个9patch图像并将其用作背景 - 可以根据需要定义拉伸,并在XML级别设置,以节省一些代码工作
答案 4 :(得分:1)
<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>
使用上面的代码
答案 5 :(得分:0)
我会尝试绘制一个圆角矩形,然后绘制两个与圆角矩形的圆角半径相同大小的矩形,并将它们放在您不想圆角的角落中。
例如,一个半径为15像素的圆角矩形和两个规则的矩形15x15px,放在圆角矩形的角落里,不应该是圆角。
编辑:重新阅读您的问题,您可能最好为列表视图的顶部和底部制作一个简单的9补丁图像。它们可以在没有像素化的情况下延伸到任何尺寸。但是,这需要您事先创建图像,并且稍后在代码中更容易修改矩形形状。然而,9补丁方式不那么糟糕了。
答案 6 :(得分:-2)
绘制一个圆角矩形,然后在具有相同颜色的圆角矩形上绘制一个普通矩形。