2010-12-07 37 views
5

我正在創建一個用作按鈕背景的形狀。我正在製作一個按鈕,左邊的那個將在左邊有圓角,右邊的最後一個在右邊有圓角。這很簡單,api文檔告訴你如何做到這一點。但是,當我使用android:topLeftRadiusandroid:bottomLeftRadius時,UI中的結果好像我放置了bottomRightRadius。對方的行爲也是如此。看來,誰實現了這個交換bottomRight和bottomLeft。我將發佈下面的代碼片段。android xml形狀聲明中的奇怪錯誤

有沒有這種我可能會失蹤的邏輯原因?或者,如果這是Android工程師的錯誤,那麼一旦他們解決了問題,它會保持向後兼容嗎?我想他們必須使所有新屬性保持舊的有效性(leftTop而不是topLeft也許?)。

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" > 
     <shape> 
      <solid android:color="#99000000" /> 
      <padding 
       android:top="8dp" 
       android:left="8dp" 
       android:right="8dp" 
       android:bottom="8dp" /> 
      <corners 
       android:topLeftRadius="8dp" 
       android:bottomRightRadius="8dp" /> 
     </shape> 
    </item> 
+0

可能的重複[如何製作左上角圓角和左下角圓角的形狀?](http://stackoverflow.com/questions/3056232/how-to-make -a-形狀與 - 左頂圓圓角和左底部倒圓 - 共) – jamessan 2010-12-07 17:30:09

回答

2

我似乎無法找到它,但我記得在某處看到有一個錯誤,要求你先重寫整個半徑,然後將那些不想有半徑的重新設置回去;例如:

<corners 
    android:radius="8dp" 
    android:topRightRadius="0dp" 
    android:bottomLeftRadius="0dp" 
    /> 

我不保證成功,但您可以試試。

編輯:啊,甜甜圈似乎有正確的答案。

1
<corners android:topLeftRadius="0.1dp" 
android:topRightRadius="6dp" 
android:bottomRightRadius="0.1dp" 
android:bottomLeftRadius="6px" /> 

這將工作的耐受性和右上角。根據您的要求調整它