2016-05-12 7 views
2

Ich möchte einen ziemlich großen, weichen Schatten unter meinem TextView erstellen. Allerdings kann ich keinen ausreichend großen Schattenradius verwenden, da Android abstürzt, wenn ich es auf mehr als 25.0 setze.Wie erstellt man einen großen unscharfen Schatten hinter einem TextView?

This is an example of the shadow I want to create

This is the largest shadow radius I'm able to create

Die erste der Bilder ist die oben von unserem iOS App und zeigt den Schatten unter dem Text, wie ich es will. Wie Sie sehen können, kann ich diesen Schatteneffekt unter Android nicht wiederherstellen.

Der XML-Stil für den Schatteneffekt ist derzeit wie folgt aus:

<style name="TextViewShadowEffectSoft"> 
    <item name="android:shadowColor">#DD000000</item> 
    <item name="android:shadowDx">0.0</item> 
    <item name="android:shadowDy">0.0</item> 
    <item name="android:shadowRadius">25.0</item> 
</style> 

, die zu dem AutoResizeTextView (Vorfahren des Textview) bei der Schöpfung aufgeblasen wird:

AutoResizeTextView title = (AutoResizeTextView) getActivity().getLayoutInflater().inflate(R.layout.text_shadow_soft, null); 

Wo text_shadow_soft.xml ist:

com.app.models.AutoResizeTextView 
style="@style/TextViewShadowEffectSoft" /> 

Meine app hat eine minimale API von 19

EDIT: Crash-Log bei der Einstellung android: shadowRadius höher als 25,0:

05-12 13:16:20.590 10679-10781/com.app E/rsC++: RS CPP error: Blur radius out of 0-25 pixel bound 
05-12 13:16:20.593 10679-10781/com.app E/rsC++: RS CPP error (masked by previous error): Allocation creation failed 
05-12 13:16:20.593 10679-10781/com.app E/rsC++: RS CPP error (masked by previous error): Allocation creation failed 
05-12 13:16:20.593 10679-10781/com.app E/rsC++: RS CPP error (masked by previous error): Blur radius out of 0-25 pixel bound 

                 --------- beginning of crash 
05-12 13:16:20.594 10679-10781/com.app A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x28 in tid 10781 (RenderThread) 

Schätzen Sie alle Gedanken und Input!

+0

set 'android: shadowRadius' zu' 50.0' funktioniert gut in meinem Handy. –

+0

Hallo @ JiangYD! Es wird abstürzen, wenn ich den "android: shadowRadius" auf mehr als 25.0 setze. Siehe Fehler oben. – Axelfran

+0

Ich denke Android nicht auf 25 zu begrenzen, aber Ihr Telefon begrenzt es. Es ist schwer, Schatten zu verwischen, wenn Sie nicht mit grafischer Verarbeitung arbeiten. –

Antwort

1

Es scheint, dass einige Code im Zusammenhang mit Ihnen Hardware begrenzen. Verwenden Sie also bitte Software Render, fügen Sie android:layerType="software" zu Ihrer Ansicht hinzu.