0

我正在使用这个动画:

    <?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);
4

1 回答 1

0

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

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

更新

表示显示器具有安全视频输出并支持合成安全表面。

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

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

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

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

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

于 2013-07-07T12:26:55.590 回答