我正在使用以下翻译动画将图像垂直向下移动到我的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);

最佳答案

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

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

现在将动画设置为20%:
mAnimation = new TranslateAnimation(0, 0, -300, height*2/10);

10-08 06:16