如果我们在android中有一个小屏幕的坐标,如何在大屏幕上获得相对坐标

时间:2013-12-11 06:14:48

标签: android

我的坐标对应于屏幕分辨率600x400。现在我想得到屏幕分辨率1280x800的这个坐标的相对位置。获得坐标后,我必须在该坐标上创建一个链接。
。例如

假设我有600 * 400设备分辨率的坐标(5,5),所以这个坐标将位于屏幕的左下角。现在我想知道它的相对坐标是什么1280 * 800屏幕分辨率设备,使其看到相同的位置,即屏幕的左下角。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

坚持你的要求,你可以按照以下方式获得新的像素

假设(6,4)屏幕尺寸上的坐标为600*400,现在根据屏幕分辨率计算x,y的百分比,如下所示

(6 * 100 )/600 = 1%

(4* 100)/400 = 1%

现在根据新的屏幕尺寸计算坐标,如下所示,

(1 * 1280) /100 = 12.8 

(1* 800) /100 = 8

所以新屏幕尺寸的坐标是:(12.8,8),这是以前的(6,4)。

但是如果您可以更具体地了解自己的实际行动,那么有更好的方法可以完成这些要求。

答案 1 :(得分:0)

这是根据屏幕密度将dp转换为px,将px转换为dp的公式,因此无论哪种方式,您都可以将适当的坐标转换为相对屏幕密度。

public int doToPixel(int dp) {
    DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();
    int px = Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));       
    return px;
}


public int pixelToDP(int px) {
    DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();
    int dp = Math.round(px / (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
    return dp;
}