首页 > 解决方案 > 当 AdView 显示在

问题描述

我制作了一个自定义视图来可视化进度。它有一个简单的介绍动画,如下所示:

PropertyValuesHolder c=PropertyValuesHolder.ofInt("c",0,100);
ValueAnimator anim=new ValueAnimator();
anim.setValues(c);
anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
      @Override
      public void onAnimationUpdate(ValueAnimator animation) {
          position = (int) animation.getAnimatedValue("c");
          postInvalidate();
      }
  });
anim.setDuration(1000);
anim.start();

它在大约 50 个关键帧的情况下工作顺利,但是在放置在父视图上的 AdView 之后,相同的动画会出现延迟(性能降低到大约 20 个关键帧)。我检查了ValueAnimator.FrameDelay,它没有改变。

在 adMob 之前 在 adMob 之后

是什么导致了这个问题,解决方案是什么?

标签: androidviewadmobandroid-animationandroid-custom-view

解决方案


正如@MartinMarconcini所说,问题与嵌入在 AdView 中的 WebView 有关。通过在 AdView 上启用硬件加速提高了性能。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) 
        adView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
   else adView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

推荐阅读