如何在setContentView之后手动启用android硬件加速?

时间:2016-06-25 09:24:05

标签: android gif

在我的SplashActivity中,有时会显示图像视图,有时它会显示gif。我用android-gif-drawable来玩gif。但我发现,如果我没有设置活动<activity android:hardwareAccelerated="true" />,gif将以正常速率播放。只有我启用hardwareAccelerated,才能正常播放。但是,在我设置<activity android:hardwareAccelerated="true" />之后,我使用了adb shell dumpsys com.yanzi.demo,GL花费了大约20M内存。所以,我必须使用java来启用硬件加速,只有在播放gif时。

我使用下一个代码启用它:

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

setContentView运作良好之前写下它。但是,我需要时间检查是否播放gif,因此必须在setContentView之后启用它。我测试一下,发现不行。有人可以帮帮我吗?或者,这是一个无法解决的问题? Api guides

1 个答案:

答案 0 :(得分:0)

如果您在setContentView之后启用硬件加速,则必须使用WindowManager添加视图。否则,它根本不起作用。希望能帮到你。