根据屏幕大小翻译动画

时间:2016-02-11 20:29:18

标签: java android animation screen-size translate-animation

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

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

您可以使用Get Size

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

此问题仅涉及:Get screen dimensions in pixels

然后,您可以使用您定义大小的任何变量替换150.