活动缩放动画显示黑色背景



我正在使用这个动画:

    <?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="500"
    android:fillAfter="false"
    android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:interpolator="@android:anim/linear_interpolator"
    android:pivotX="50%"
    android:pivotY="50%"
    android:startOffset="0"
    android:toXScale="0.9"
    android:toYScale="0.95" />

然后使用代码:

overridePendingTransition(R.anim.activity_animation_right_to_left, R.anim.activity_animation_zoom_in);

当活动缩放到0.95时,活动后面会出现黑色背景。

解决方案1失败:将应用程序的windowBackground设置为其他颜色。解决方案2失败:在活动中使用此代码:

getWindow().setBackgroundDrawableResource(R.drawable.texture_background);

setContentView() 之后向onCreate()方法添加以下代码

getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,WindowManager.LayoutParams.FLAG_SECURE);

更新

指示显示器具有安全的视频输出,并支持合成安全曲面。

如果设置了该标志,则显示设备具有安全的视频输出并且能够显示安全的表面。它还可以显示受保护的缓冲区。

如果未设置该标志,则显示设备可能不具有安全视频输出;用户可以在屏幕上看到空白区域,而不是安全表面或受保护缓冲区的内容。

安全表面用于防止应用程序渲染到这些表面的内容出现在屏幕截图中或在非安全显示器上查看。受保护的缓冲器被安全视频解码器用于类似的目的。

应用程序通过指定FLAG_secure窗口标志来创建具有安全表面的窗口。同样,应用程序在将安全视图附加到其包含窗口之前,通过调用setSecure(布尔值)来创建具有安全曲面的SurfaceView。

应用程序可以使用此标志的缺失作为不应在此显示器上创建安全表面或受保护缓冲区的提示,因为内容可能不可见。例如,如果未设置标志,则应用程序可以选择不在此显示器上显示内容、显示信息性错误消息、选择替代内容流或采用不同的策略来解码不依赖于安全表面或受保护缓冲区的内容。

最新更新