Как я могу повысить производительность обновлений пользовательского интерфейса при одновременном обновлении двух представлений?

#android #multithreading #performance #view #android-youtube-api

#Android #многопоточность #Производительность #Вид #android-youtube-api

Вопрос:

В настоящее время я разрабатываю приложение, в котором одновременно обновляется несколько представлений. Одно из представлений исчезает из прозрачного в полупрозрачное.

Проблема в том, что если пользователь взаимодействует со вторым представлением во время этого перехода, оно становится прерывистым и прерывистым.

Анимация затухания выполняется с помощью следующего кода:

 ObjectAnimator colorFade = ObjectAnimator.ofObject(mBackView, "backgroundColor", new ArgbEvaluator(), 0x00000000, 0xbb000000);
colorFade.setInterpolator(new AccelerateDecelerateInterpolator());
colorFade.setDuration(2000);
colorFade.start();
 

и обновление другого представления выполняется путем вызова invalidate . Я уже вызвал invalidate только для той части экрана, которая нуждается в обновлении, я уже сократил свой код в своем методе onDraw (), чтобы он был абсолютно минимальным, и я уже сократил количество раз, когда invalidate вызывается до абсолютного минимума.

Могу ли я в любом случае обновить оба этих представления (одно затенение, а другое аннулирование) без этого дрожания?

И если кто-нибудь хочет знать, почему я использую два представления вместо того, чтобы просто менять цвет другого представления, это было на самом деле менее нервным.

Здесь можно увидеть 15-секундный клип, демонстрирующий проблему. когда я провожу пальцем по элементам управления, и это делает недействительной анимацию затухания, она дрожащая, а когда я остаюсь неподвижным, она плавная.

Заранее благодарю!