如何在 TextView 后面创建一个大的模糊阴影?
How to create a large blurred shadow behind a TextView?
我想在我的 TextView 下方创建一个相当大的柔和阴影。但是我无法使用足够大的阴影半径,因为如果我将它设置为大于 25.0,Android 将会崩溃。
上面的第一张图片来自我们的 iOS 应用程序,并显示了我想要的文本下方的阴影。如您所见,我无法在 Android 上重新创建此阴影效果。
阴影效果的XML样式目前是这样的:
<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>
它在创建时膨胀到 AutoResizeTextView(TextView 的祖先):
AutoResizeTextView title = (AutoResizeTextView) getActivity().getLayoutInflater().inflate(R.layout.text_shadow_soft, null);
其中 text_shadow_soft.xml 是:
com.app.models.AutoResizeTextView
style="@style/TextViewShadowEffectSoft" />
我的应用至少 API 为 19。
编辑:设置 android:shadowRadius 高于 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)
感谢所有想法和意见!
似乎某些与您的硬件相关的代码限制了它。所以请使用软件渲染,将android:layerType="software"
添加到您的视图中。
或者在代码中使用
myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
我想在我的 TextView 下方创建一个相当大的柔和阴影。但是我无法使用足够大的阴影半径,因为如果我将它设置为大于 25.0,Android 将会崩溃。
上面的第一张图片来自我们的 iOS 应用程序,并显示了我想要的文本下方的阴影。如您所见,我无法在 Android 上重新创建此阴影效果。
阴影效果的XML样式目前是这样的:
<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>
它在创建时膨胀到 AutoResizeTextView(TextView 的祖先):
AutoResizeTextView title = (AutoResizeTextView) getActivity().getLayoutInflater().inflate(R.layout.text_shadow_soft, null);
其中 text_shadow_soft.xml 是:
com.app.models.AutoResizeTextView
style="@style/TextViewShadowEffectSoft" />
我的应用至少 API 为 19。
编辑:设置 android:shadowRadius 高于 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)
感谢所有想法和意见!
似乎某些与您的硬件相关的代码限制了它。所以请使用软件渲染,将android:layerType="software"
添加到您的视图中。
或者在代码中使用
myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);