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

时间:2013-07-07 11:45:42

标签: android animation background

我正在使用这个动画:

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

1 个答案:

答案 0 :(得分:0)

onCreate()

之后将以下代码添加到setContentView()方法
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,WindowManager.LayoutParams.FLAG_SECURE);

<强>更新

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

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

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

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

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

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