Android 多屏幕问题

Android 多屏幕问题,android,resolution,multiscreen,Android,Resolution,Multiscreen,我有两个问题: 我有一个图像视图,当我触摸它时,我会将它发送到(X,Y)位置。我有一个S4和一个星系注3,分辨率(1920x1080)和密度xxhdpi。 当我测试它们时,我注意到不同设备中的imageView没有发送到相同的位置。请注意,在Galaxy中,图像视图更多地位于右侧和上方。。。为什么会这样?具有相同的分辨率,属于相同的密度(xxhdpi)! 对于这个示例和所有屏幕,我如何修复这个问题 这是我的XML代码 <RelativeLayout xmlns:android="http:

我有两个问题:

我有一个图像视图,当我触摸它时,我会将它发送到(X,Y)位置。我有一个S4和一个星系注3,分辨率(1920x1080)和密度xxhdpi。 当我测试它们时,我注意到不同设备中的imageView没有发送到相同的位置。请注意,在Galaxy中,图像视图更多地位于右侧和上方。。。为什么会这样?具有相同的分辨率,属于相同的密度(xxhdpi)! 对于这个示例和所有屏幕,我如何修复这个问题

这是我的XML代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/fondo_jugar"
tools:context="com.trucouruguayo.JugarActivity" >


<ImageView
    android:id="@+id/imageViewCard1"
    android:layout_width="101dp"
    android:layout_height="142.50dp"
    android:layout_alignLeft="@+id/imageViewMazo"
    android:layout_alignTop="@+id/imageViewMazo"
    android:layout_marginRight="-50dp"
    android:contentDescription="@string/imageViewDescriptionCartd1"
    android:src="@drawable/reverso"
    android:scaleType="fitXY" />

<ImageView
    android:id="@+id/imageViewCard2"
    android:layout_width="101dp"
    android:layout_height="142.50dp"
    android:layout_alignLeft="@+id/imageViewMazo"
    android:layout_alignTop="@+id/imageViewMazo"
    android:layout_marginRight="-50dp"
    android:contentDescription="@string/imageViewDescriptionCard2"
    android:src="@drawable/reverso"
    android:tag="imageViewCarta1"
    android:scaleType="fitXY" />

    ...

</<RelativeLayout >

...

为了解决这个问题,我使用DisplayMetrics类编程计算了X和Y坐标,如下所示:

DisplayMetrics metrics= new DisplayMetrics();
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
display.getMetrics(metrics);

int x=metrics.widthPixels/2; //2 can be changed according to the need
int y=metrics.heightPixels/2; //2 can be changed according to the need

然后可以使图像视图显示在该坐标处。

可以发布XML视图代码吗?我的第一个怀疑是,不同设备之间的菜单/状态栏布局不同,导致X、Y位置不同。如果它们被关闭,如果您不向我们显示布局xml,我们无法诊断问题。问题是,如果a设置为x y位置,(0,0)不是左上角,而是imageview所在的位置!因此,如果我设置x=30,y=30,它不会靠近左上角,而是从视图的位置开始(30,30)。你明白吗?你以前没提过。无论如何,在布局中,通过设置android:layout\u alignTop属性和类似属性,您将一个图像相对于另一个img放置,因此更改坐标不会更改这些属性。
DisplayMetrics metrics= new DisplayMetrics();
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
display.getMetrics(metrics);

int x=metrics.widthPixels/2; //2 can be changed according to the need
int y=metrics.heightPixels/2; //2 can be changed according to the need