2010-10-14 141 views
25

我可以創建一個矩形,所有邊圓角的形狀。但是,我想要的是一個矩形形狀,只有2個邊緣是圓形的。這可能嗎?創建一個只有兩個圓邊的矩形形狀

我本質上是一起砍一個ListView,看起來像一個圓邊的泡泡。我正在尋找添加一個標題,其中包含兩個頂部邊緣圓角和兩個底部邊緣圓角的頁腳。

回答

14

我將android:radius屬性更改爲android:topRightRadiusandroid:topLeftRadius

+1

運行應用程序後,它將被視爲完美。 – 2016-05-06 09:55:35

-1

繪製一個圓角矩形,然後用相同的顏色在圓角的一個上繪製一個正常的矩形。

0

我會嘗試繪製一個圓角的矩形,然後再添加兩個與圓角矩形的圓角半徑相同尺寸的矩形,並將它們放在不想四捨五入的角中。

因此,例如,一個半徑爲15px的圓角矩形和兩個常規矩形15x15px,放置在圓角矩形的角部,不應該圓角。

編輯:重新閱讀你的問題,你可能會更好地爲你的listview的頂部和底部做一個簡單的9-patch圖像。無需像素化,它們就可以伸展到任何尺寸。然而,這需要您事先創建圖像,而使用矩形形狀的東西在以後的代碼中更容易修改。但是,9補丁的方式不會成爲黑客攻擊。

+0

...加上:你需要畫不僅是九補丁,但不同的覆蓋不同的屏幕密度。這使得它比必要的更復雜。我寧願在代碼中做,並根據矩形的大小來調整像素的圓半徑。 – Zordid 2013-06-10 14:47:45

2

我認爲最好的(我的你的問題的理解)是創建一個9patch圖像,並使用它作爲背景 - 可以定義舒展,因爲你需要,並在XML級別設置節省一些代碼工作

17

可能您覺得此內容有用。

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

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> 

使用上面的代碼

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