2015-05-15 108 views
2

我正在嘗試與圓角按鈕進行對話。但它不工作下面API_LEVEL14安卓系統 - 頂部只能繪製圓角,只能在以下工作 - v14

我想this,但沒有辦法解決。 如果你有以下api-14的解決方案,然後分享。

低於API 14它表明像

enter image description here

,它的工作原理以及API等級14以上

enter image description here

right_below_corner.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_enabled="false"><shape android:shape="rectangle"> 
      <solid android:color="@color/header_bg_disable" /> 
      <corners android:topLeftRadius="0dp" /> 
      <corners android:topRightRadius="0dp" /> 
      <corners android:bottomLeftRadius="0dp" /> 
      <corners android:bottomRightRadius="10dp" /> 
      <stroke android:width="1dp" android:color="@color/header_bg_disable" /> 
      <padding android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp" /> 
     </shape></item> 
    <item android:state_pressed="true"><shape android:shape="rectangle"> 
      <solid android:color="@color/header_bg_press" /> 
      <corners android:topLeftRadius="0dp" /> 
      <corners android:topRightRadius="0dp" /> 
      <corners android:bottomLeftRadius="0dp" /> 
      <corners android:bottomRightRadius="10dp" /> 
      <stroke android:width="1dp" android:color="@color/header_bg_press" /> 
      <padding android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp" /> 
     </shape></item> 
    <item android:state_pressed="false"><shape android:shape="rectangle"> 
      <solid android:color="@color/header_bg" /> 
      <corners android:topLeftRadius="0dp" /> 
      <corners android:topRightRadius="0dp" /> 
      <corners android:bottomLeftRadius="0dp" /> 
      <corners android:bottomRightRadius="10dp" /> 
      <stroke android:width="1dp" android:color="@color/header_bg" /> 
      <padding android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp" /> 
     </shape></item> 

</selector> 

bottom_left_corner.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true"><shape android:shape="rectangle"> 
      <solid android:color="@color/header_bg_press" /> 
      <corners android:bottomLeftRadius="10dp" /> 
      <corners android:topLeftRadius="0dp" /> 
      <corners android:topRightRadius="0dp" /> 
      <corners android:bottomRightRadius="0dp" /> 
      <stroke android:width="1dp" android:color="@color/header_bg_press" /> 
      <padding android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp" /> 
     </shape></item> 
    <item android:state_pressed="false"><shape android:shape="rectangle"> 
      <solid android:color="@color/header_bg" /> 
      <corners android:topLeftRadius="0dp" /> 
      <corners android:topRightRadius="0dp" /> 
      <corners android:bottomRightRadius="0dp" /> 
      <corners android:bottomLeftRadius="10dp" /> 
      <stroke android:width="1dp" android:color="@color/header_bg" /> 
      <padding android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp" /> 
     </shape></item> 
</selector> 
+0

有一種方法來實現那。添加如'<查看 機器人的圖:layout_width = 「1DP」 機器人:layout_height = 「7DP」 機器人:能見度= 「隱形」 機器人:ID = 「@ + ID/support_view」 機器人:layout_gravity =「CENTER_HORIZONTAL 「 android:background =」@ android:color/transparent「/>''''''''''''''''''''''''在底部給出一些額外的空白,讓背景變成一個圓角 –

+0

@AvinashChowdary我嘗試這個但不工作。 –

回答

1

是的,有在Android的一個bug,直到3.1版本。當單獨指定角落時,將左下角和右下角翻轉: http://code.google.com/p/android/issues/detail?id=9161

唯一的解決方案是爲這兩個版本創建單獨的xml文件。就像這樣:

RES /繪製/ corners.xml - 在顛倒值

RES /繪製-V12/corners.xml - 與正常值