2017-02-16 5 views
2

ich einige Wellen-Effekt mit einem PNG-Bild im Hintergrund eines Textview hinzufügen möchten, und gefunden this PostRahmen Hintergrund ziehbar zu Textview casues java.lang.StackOverflowError

I action_darwer.xml ziehbar als

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="?attr/selectableItemBackgroundBorderless" android:state_pressed="true" /> <!-- pressed --> 
    <item android:drawable="@drawable/drawer" /> <!-- default --> 
</selector> 
haben

und es zu Textview als

<TextView android:id="@+id/action_drawer" 
    android:layout_marginLeft="20dp" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/action_drawer"/> 

es funktioniert nicht und geben Fehler Einstellung

java.lang.StackOverflowError: stack size 8MB 
      at android.content.res.ColorStateList.valueOf(ColorStateList.java:102) 
      at android.graphics.drawable.RippleDrawable$RippleState.<init>(RippleDrawable.java:919) 
      at android.graphics.drawable.RippleDrawable.createConstantState(RippleDrawable.java:914) 
      at android.graphics.drawable.RippleDrawable.createConstantState(RippleDrawable.java:94) 
      at android.graphics.drawable.LayerDrawable.<init>(LayerDrawable.java:126) 
      at android.graphics.drawable.LayerDrawable.<init>(LayerDrawable.java:122) 
      at android.graphics.drawable.RippleDrawable.<init>(RippleDrawable.java:979) 
      at android.graphics.drawable.RippleDrawable.<init>(RippleDrawable.java:94) 
      at android.graphics.drawable.RippleDrawable$RippleState.newDrawable(RippleDrawable.java:945) 
      at android.content.res.Resources.getCachedDrawableLocked(Resources.java:2777) 
      at android.content.res.Resources.getCachedDrawable(Resources.java:2745) 
      at android.content.res.Resources.loadDrawable(Resources.java:2586) 
      at android.content.res.TypedArray.getDrawable(TypedArray.java:749) 
      at android.graphics.drawable.StateListDrawable.inflateChildElements(StateListDrawable.java:182) 
      at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:127) 
      at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1133) 
      at android.graphics.drawable.Drawable.createFromXml(Drawable.java:1037) 
      at android.content.res.Resources.loadDrawableForCookie(Resources.java:2718) 
      at android.content.res.Resources.loadDrawable(Resources.java:2614) 
      at android.content.res.TypedArray.getDrawable(TypedArray.java:749) 
      at android.graphics.drawable.StateListDrawable.inflateChildElements(StateListDrawable.java:182) 
      at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:127) 
      at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1133) 
      at android.graphics.drawable.Drawable.createFromXml(Drawable.java:1037) 
      at android.content.res.Resources.loadDrawableForCookie(Resources.java:2718) 
      at android.content.res.Resources.loadDrawable(Resources.java:2614) 
      at android.content.res.TypedArray.getDrawable(TypedArray.java:749) 
      at android.graphics.drawable.StateListDrawable.inflateChildElements(StateListDrawable.java:182) 
      at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:127) 
      at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1133) 
      at android.graphics.drawable.Drawable.createFromXml(Drawable.java:1037) 
      at android.content.res.Resources.loadDrawableForCookie(Resources.java:2718) 
      at android.content.res.Resources.loadDrawable(Resources.java:2614) 
      at android.content.res.TypedArray.getDrawable(TypedArray.java:749) 
      at android.graphics.drawable.StateListDrawable.inflateChildElements(StateListDrawable.java:182) 
      at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:127) 
      at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1133) 
      at android.graphics.drawable.Drawable.createFromXml(Drawable.java:1037) 
      at android.content.res.Resources.loadDrawableForCookie(Resources.java:2718) 
      at android.content.res.Resources.loadDrawable(Resources.java:2614) 
      at android.content.res.TypedArray.getDrawable(TypedArray.java:749) 
      at android.graphics.drawable.StateListDrawable.inflateChildElements(StateListDrawable.java:182) 
      at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:127) 
      at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1133) 
      at android.graphics.drawable.Drawable.createFromXml(Drawable.java:1037) 
      at android.content.res.Resources.loadDrawableForCookie(Resources.java:2718) 
      at android.content.res.Resources.loadDrawable(Resources.java:2614) 
      at android.content.res.TypedArray.getDrawable(TypedArray.java:749) 
      at android.graphics.drawable.StateListDrawable.inflateChildElements(StateListDrawable.java:182) 
      at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:127) 
     at android.graphi 
02-16 13:12:53.567 22641-22641/org.team.asl.carticon E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! 
02-16 13:12:53.568 22641-22641/org.team.asl.carticon E/AndroidRuntime: Error reporting crash 
     android.os.TransactionTooLargeException 
      at android.os.BinderProxy.transactNative(Native Method) 
      at android.os.BinderProxy.transact(Binder.java:504) 
      at android.app.ActivityManagerProxy.handleApplicationCrash(ActivityManagerNative.java:4294) 
      at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:89) 
      at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693) 
      at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690) 

Wie löst man dieses Problem? Irgendwelche Vorschläge werden geschätzt. Vielen Dank.

+0

Show 'ziehbar/drawer' Code, oder es ist ein Bild? –

+0

@VladMatvienko ja genau das ist ein Bild! –

+0

Sind Sie sicher? Können Sie einen Screenshot Ihrer Ressourcenordnerstruktur posten? –

Antwort

0

Soweit es mich betrifft, können Sie nicht definieren ? Attr/selectableItemBackgroundBorderless als Zeichen, das ist, wo der Absturz ist. , dass zu anderen ändern ziehbar

zB:

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/pressed" android:state_pressed="true" /> <!-- pressed --> 
    <item android:drawable="@drawable/drawer" /> <!-- default --> 
</selector> 
1

Stackoverflow tritt auf, weil eine Anwendung zu tief recurses.

Zuerst background

<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
<item android:state_pressed="true" 
     android:drawable="@drawable/pressed/> // Press State 
<item android:state_focused="true" 
     android:drawable="@drawable/focused"/> // Focused 
<item android:drawable="@drawable/drawer"/> // Default State 

</selector> 

überprüfen Weitere Details ändern How can I modify ripple color when using ?

+0

Ich brauche Ripple-Effekt im Hintergrund, so dass alle dropable.xml-Datei für das heißt gedrückten Zustand –

+0

@ArshadAli http://StackOverflow.com/Questions/27579626/Set-background-on-Textview-Object-and-maintain-Ripple-Effect –

+0

@ArshadAli FYI eine andere Info, 'Drawable' ist nicht schwer/Auflösung orientiert –

Verwandte Themen