Android 如何在屏幕上用不同的值准确地翻译对象?寻找真理

Android 如何在屏幕上用不同的值准确地翻译对象?寻找真理,android,coordinates,Android,Coordinates,您好,我在控制屏幕上对象的位置时遇到问题。当我创建“活动”时,屏幕上的每个对象都放置了动画,麻烦从这里开始。首先,我尝试用像素坐标来放置所有东西,像素坐标是基于屏幕的高度和宽度的。我想在活动开始时从设备中取出它。在编码过程中,我认为更好的方法是使用%值,因为我不需要考虑不同的屏幕分辨率和类似的东西 图中显示了我认为屏幕显示的不同值,但我错了。我假设布局与父级匹配,因此它与屏幕的大小几乎相同 因为%p和%p的值的范围是从-100到100,所以哪里是-100%,当我把像-60%p这样的东西放在屏幕

您好,我在控制屏幕上对象的位置时遇到问题。当我创建“活动”时,屏幕上的每个对象都放置了动画,麻烦从这里开始。首先,我尝试用像素坐标来放置所有东西,像素坐标是基于屏幕的高度和宽度的。我想在活动开始时从设备中取出它。在编码过程中,我认为更好的方法是使用%值,因为我不需要考虑不同的屏幕分辨率和类似的东西

图中显示了我认为屏幕显示的不同值,但我错了。我假设布局与父级匹配,因此它与屏幕的大小几乎相同

因为%p和%p的值的范围是从-100到100,所以哪里是-100%,当我把像-60%p这样的东西放在屏幕上时,我看不到它。我尝试通过更改值来处理对象并查看结果,但例如 对象表示为

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true"
android:fillEnabled="true"
android:duration="3000"
android:startOffset="7000">
<translate 
    android:fromXDelta="2600"
    android:toXDelta="0%p"
    android:fromYDelta="-10"
    android:toYDelta="-10%p"
    />
<rotate 
    android:fromDegrees="359"
    android:toDegrees="0"
    android:pivotX="50%"
    android:pivotY="50%"
    />

在屏幕上的位置高于对象,表示为:

<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true"
android:fillEnabled="true"
android:duration="3000"
android:startOffset="12000">
<rotate 
    android:fromDegrees="359"
    android:toDegrees="0"
    android:pivotX="50%"
    android:pivotY="50%"
    />
<translate 
    android:fromXDelta="-599"
    android:toXDelta="40%p"
    android:fromYDelta="-499"
    android:toYDelta="-10%p"
    />

我认为它们应该处于同一个垂直水平,因为android:toYDelta是相同的

在我看来,当我们将值放入xml代码时,我们将对象的右上角放在其中

请澄清我对不同类型坐标的看法,错误在哪里


如果你能给我答复,我将不胜感激

显示布局。它定义了Android如何使用屏幕上的坐标。现在你给我们看的是动画,但不是它是如何放置的。我试图在本周末更新这个问题