Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 具有不同屏幕大小的ViewPropertyAnimatorCompat.translationY渲染_Android_Android Animation - Fatal编程技术网

Android 具有不同屏幕大小的ViewPropertyAnimatorCompat.translationY渲染

Android 具有不同屏幕大小的ViewPropertyAnimatorCompat.translationY渲染,android,android-animation,Android,Android Animation,也许答案很简单,但我对Android动画还不熟悉。我的Nexus 5设备(带有4.95英寸1080x1920显示屏)中的以下代码正常工作: 动画将图像向上平移400点(像素?),并在我想要的位置结束。 问题是,当我的应用程序在模拟器Nexus(800x1280)7和Nexus 10(2560x1600)上运行时,在这两种情况下,Y轴上的移动大小在它们之间是不同的,对于手机来说也是不同的,例如,我最终在3台设备上传输了400个点,但在这三种情况下,移动是不同的。我的问题是如何使所有屏幕大小的移动相

也许答案很简单,但我对Android动画还不熟悉。我的Nexus 5设备(带有4.95英寸1080x1920显示屏)中的以下代码正常工作:

动画将图像向上平移400点(像素?),并在我想要的位置结束。
问题是,当我的应用程序在模拟器Nexus(800x1280)7和Nexus 10(2560x1600)上运行时,在这两种情况下,Y轴上的移动大小在它们之间是不同的,对于手机来说也是不同的,例如,我最终在3台设备上传输了400个点,但在这三种情况下,移动是不同的。我的问题是如何使所有屏幕大小的移动相等(只有一个数字),从而不必在translationY(var)方法中使用变量?或者我必须使用一个变量来考虑3种可能的情况吗?。提前谢谢

您可以使用dimen文件夹设置尺寸,有四个dimen文件夹,您必须根据需要指定四个不同的值确定,我将尝试。但是我不明白为什么我不能在dp中设置这个值,我的意思是在translationY()方法中。对于不同的设备,你不能硬编码这个值感谢你的回答,你的解决方案100%有效
ViewCompat.animate(imageView)
                .translationY(-400)
                .alpha(1)
                .setStartDelay(200)
                .setDuration(800).setInterpolator(
                new DecelerateInterpolator(1.2f)).start();