根据屏幕大小翻译动画

Translate Animation based on screen size

我正在使用以下翻译动画将图像垂直向下移动到我的 android 应用程序的屏幕上。但是,目前它转到 150 的固定位置。我希望此值取决于屏幕尺寸。例如,我希望图像从屏幕顶部开始停在用户屏幕长度的 20% 处。我将如何调整 y delta 值以适应这种情况?

    mScanner = (ImageView)findViewById(R.id.logo_img);

    mAnimation = new TranslateAnimation(0, 0, -300, 150);
    mAnimation.setDuration(2500);
    mAnimation.setFillAfter(true);
    //mAnimation.setRepeatCount(-1);
   // mAnimation.setRepeatMode(Animation.RESTART);
    mScanner.setAnimation(mAnimation);
    mScanner.setVisibility(View.VISIBLE);

您可以使用 Get Size

以编程方式获取用户的屏幕尺寸

这个问题只涉及:Get screen dimensions in pixels

然后您可以将 150 替换为您定义大小的任何变量。

获取设备屏幕长度(高度):

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
int height = display.getHeight();

现在为 20%,设置动画如下:

mAnimation = new TranslateAnimation(0, 0, -300, height*2/10);