SKGLView比SKCanvasView暗得多

Mud*_*Mud 7 xamarin xamarin.forms skiasharp

我的应用程序主屏幕通过SKCanvasView呈现.颜色准确反映了我在代码中指定的值.

如果我交换SKGLView(硬件加速版),不更改其他代码,结果是60%更暗:

    <!--<skia:SKCanvasView PaintSurface="OnCanvasViewPaintSurface" />-->
    <skia:SKGLView PaintSurface="OnCanvasViewPaintSurface" />
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况,我该如何解决?

Mat*_*hew 2

答案可以在这里找到:https://github.com/mono/SkiaSharp/issues/299#issuecomment-331990904

我找到了问题的解决方案。在初始屏幕样式中设置了一个特定属性,但当样式更改时不会取消设置(由于某种原因)。

splashscreen样式中,请注意这一点:

<item name="android:backgroundDimEnabled">true</item>
Run Code Online (Sandbox Code Playgroud)

文档:https ://developer.xamarin.com/api/field/Android.Resource+Attribute.BackgroundDimEnabled

切换样式时不会取消设置。因此,要解决此问题,只需将其设置为 false:

<item name="android:backgroundDimEnabled">false</item>
Run Code Online (Sandbox Code Playgroud)

这是一个演示这一点的存储库: https ://github.com/mattleibow/AndroidGLSurfaceViewTests