Поведение ValueAnimator изменяется, когда AdView отображается в - PullRequest
0 голосов
/ 06 июня 2019

Я сделал пользовательское представление для визуализации прогресса.Он имеет простую вводную анимацию, подобную приведенной ниже:

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, он не меняется.

before adMob after adMob

Что вызывает эту проблему, и каково ее решение?

1 Ответ

1 голос
/ 06 июня 2019

Как сказал @ MartinMarconcini , проблема связана с WebView, встроенным в AdView.Повышение производительности благодаря включению аппаратного ускорения в 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);
...