2016-08-07 89 views
3

我使用的是定製的紋波drawable紋波繪製的崩潰在Android API的應用程序19

<?xml version="1.0" encoding="utf-8"?> 
<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:exitFadeDuration="@android:integer/config_shortAnimTime" 
    android:color="@android:color/white"> 

    <item android:id="@android:id/mask"> 
     <shape android:shape="rectangle" > 
      <solid android:color="@android:color/white" /> 
     </shape> 
    </item> 


</ripple> 

,但它崩潰的API 19

android.content.res.Resources$NotFoundException: File res/drawable/
    ripple_effect_square2.xml from drawable resource ID #0x7f02017d 
at android.content.res.Resources.loadDrawable(Resources.java:2101) 
at android.content.res.Resources.getDrawable(Resources.java:700) 
at android.view.View.setBackgroundResource(View.java:15303) 

Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line # 2: invalid drawable tag ripple 
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java: 933) 
at android.graphics.drawable.Drawable.createFromXml(Drawable.java: 877) 
at android.content.res.Resources.loadDrawable(Resources.java: 2097) 
at android.content.res.Resources.getDrawable(Resources.java: 700)  
at android.view.View.setBackgroundResource(View.java: 15303)  

我應該做些什麼來阻止崩潰的應用程序?

回答

11

RippleDrawable已添加到API 21中,因此它在早期的SDK上不可用。

您可以將可繪製文件移動到res/drawable-v21以確保它在早期版本中不會崩潰。

+1

有沒有其它方法來做到這一點的21前 –

6

我有同樣的問題。

Mina Samy答案也解決了我的問題。

Atef Hares在舊版本中尋求替代品。 我什麼工作是例如改用的紋波

選擇:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true"> 
     <shape android:shape="rectangle"> 
      <solid android:color="#ccffffff" /> 
     </shape> 
    </item> 
    <item android:state_focused="true"> 
     <shape android:shape="rectangle"> 
      <stroke android:color="@android:color/white" /> 
     </shape> 
    </item> 
    <item android:drawable="@color/playColor" /> 
</selector> 

其中

<color name="playColor">#E8EAF6</color>