首页 > 解决方案 > EmbossMaskFilter 导致 Android OS 8.1(Oreo)、9.0(Pie) 上的 App 崩溃,其余工作正常

问题描述

EmbossMaskFilter会导致 Android OS 8.1(Oreo)、9.0(Pie) 上的 App 崩溃,其余的在所有其他操作系统上都可以正常工作。得知三星 Note 9 的用户何时报告了该问题。

开发者指南:

https://developer.android.com/reference/android/graphics/EmbossMaskFilter

float[] direction = new float[] {0.0f, -1.0f, 0.5f};

EmbossMaskFilter filter = new EmbossMaskFilter(
                        direction, // direction of the light source
                        0.5f, // ambient light between 0 to 1
                        1, // specular highlights
                        1f // blur before applying lighting
                );

textView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
textView.getPaint().setMaskFilter(filter);

API > 25 上的应用程序崩溃

虽然设备 API <= 25 没有问题

根据文档(上述链接):

此构造函数在 API 级别 28 中已弃用。此子类不受支持且不应实例化。

任何帮助将不胜感激。谢谢

标签: androidandroid-studio

解决方案


推荐阅读