自定义视图动画在模拟器上流畅,但在真实设备上不稳定

BigKitkat 博士

我一直在为一个 自定义视图工作android app,我添加了动画,发现它们emulators在真实手机上很流畅但很粗糙;

模拟器动画

设备动画

它在 gif 中不是很清楚,但模拟器要流畅得多。如果有帮助,使用的设备是 Galaxy Note 5。

 public void animateLayout(){
    ValueAnimator valueAnimator = ValueAnimator.ofInt(25,displayHeight -initHeight);
    valueAnimator.setDuration(1000);
    valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            layoutParams = new RelativeLayout.LayoutParams(getWidth(), initHeight + (int) animation.getAnimatedValue());
            setLayoutParams(layoutParams);
        }
    });
    valueAnimator.addListener(new Animator.AnimatorListener() {
        @Override
        public void onAnimationStart(Animator animation) {

        }

        @Override
        public void onAnimationEnd(Animator animation) {
            gameViewVisible = true;
            animateArc();
        }

        @Override
        public void onAnimationCancel(Animator animation) {

        }

        @Override
        public void onAnimationRepeat(Animator animation) {

        }
    });
    if(gameViewVisible == false) {
        valueAnimator.start();
    }


}

public void animateArc(){
    ValueAnimator valueAnimator = ValueAnimator.ofInt(0,achievmentProgress);
    valueAnimator.setDuration(achievmentProgress*(int)4.7);
    valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            achievmentDegrees = (int)animation.getAnimatedValue();
            invalidate();


        }
    });
    valueAnimator.start();
}

这些是我使用的动画,任何帮助表示赞赏。

BigKitkat 博士

所以如果有人试图解决这个问题,这就是我为解决这个问题所做的。我将所有位图分配移动到 onSizeChanged 方法。现在,每次我在这些动画中调用 invalidate 时,它​​都不必重新绘制大位图,并且周围更加流畅。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

动画在模拟器上显示,但在真实设备上显示

应用程序未在真实设备上显示listview,但在模拟器上运行

xamarin构建在模拟器上通过,但在真实设备上失败

SwiftUI 后台模式在模拟器中有效,但在真实设备上无效?

Exoplayer 通知未在真实设备上显示,但在模拟器中显示良好

检测在模拟器或真实设备上运行的应用

基于JavaScript滚动的动画在移动设备上不稳定

IOS App在iTunes版本上崩溃,但在本地模拟器和真实设备测试中运行良好

Android 应用程序在真实设备上安装后崩溃,但在模拟器中运行良好

在真实设备上运行模拟器与模拟器

前景在真实设备中不可见,但在模拟器中可见

从集合视图单元中拖动可在iPad模拟器上使用,但不适用于iPhone模拟器或Swift 4中的真实设备

动画 SVG 在移动设备上的帧率不稳定

仅在真实设备上无法在模拟器上运行Xcode项目

textCapSentences可在模拟器上运行,但不能在真实设备上运行

AVAudioPlayer可在模拟器上运行,但不能在真实设备上运行

Android Studio应用可在真实设备上运行,但无法在模拟器上运行

Windows Phone模拟器-来自真实设备的数据

背景图像在模拟器和真实设备Andriod 9.0上显示,但在8.1及以下版本上不显示

无法在真实设备上获取FCM令牌,但进入模拟器

如何在iOS模拟器或真实设备上测试Gluon应用程序?

TextView没有出现在模拟器和真实设备上

HLS视频无法在模拟器和真实设备上播放

应用程序可在真实设备和模拟器上正常运行,但在生成APK时无法正常工作

尝试在Android设备上检索位置...可在模拟器上使用,但不能在真实设备上使用

Unity3D 游戏 apk 在模拟器中完美运行,但在真实设备中不能运行?

此代码不在真实设备中向下滑动但在模拟器中工作(使用 Appium)

Android Studio应用在真实设备上崩溃,但可在模拟器上运行

如何确定我的Cordova应用程序是在模拟器上还是在真实设备上运行?