以编程方式在布局上定位对象

时间:2019-05-20 07:29:41

标签: android android-layout screen

我正在构建一个动画android应用。要求的一部分是以编程方式将图像视图放置在屏幕的可见区域之外,并且当按下按钮时,图像将从预定义角度(从0开始,从开始到开始)的任何方向平移到屏幕的中间(中心水平和垂直) 90、315度等)。我必须将图像定位在屏幕上不可见的正确位置,因此当转换50%p时,它将相对于父级高度或宽度向中间移动50%

但是我在使用imageview.setX和setY准确定位图像时遇到了麻烦,尤其是在针对多种手机尺寸进行测试时。

例如:要隐藏左侧的图像,我尝试将坐标X = 0-imageWidth(我也尝试过X-halfImageWidth)。 X = 0将显示一半的图像。

第二个示例:要隐藏右侧的图像,我尝试将坐标设置为X = screenWidth(显示了一半图像),x = screenWidth + halfImageWidth和x = screenWidth + imageWidth。有些离屏幕太远,翻译不准确。

当前代码以隐藏屏幕之外的图像

        float offset = screenWidth/2 * -1;
        img.setX(offset);
        img.setY(imgY); //Y coordinate no change

当前代码以在屏幕附近隐藏图像

        float offset = screenWidth;
        img.setX(offset);
        img.setY(imgY); //Y coordinate no change

以上代码有效,但并非在每个屏幕上都有效,在某些情况下甚至无法确定为什么我认为不应运行这些代码。

我认为我在屏幕定位方面还没有掌握基本原理/计算方法。任何人都知道正确的方法,请给一些指导。

0 个答案:

没有答案
相关问题