#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-секундный клип, демонстрирующий проблему. когда я провожу пальцем по элементам управления, и это делает недействительной анимацию затухания, она дрожащая, а когда я остаюсь неподвижным, она плавная.
Заранее благодарю!