如何在Android中以百分比获取触摸位置

Ama*_*989 0 android android-studio

我正在为Android设备实现绘图。问题是当我绘制到不同分辨率的设备中并以不同的方式查看同一图形时,其位置是不相同的。现在,我想获得%的触摸位置,以便可以将绘图重新绘制到其他设备中。

对于我使用的触摸位置:

      public boolean onTouchEvent(MotionEvent event) {
       float x = event.getX();
       float y = event.getY();

    switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN:
        touch_start(x, y);
        invalidate();
        break;
    case MotionEvent.ACTION_MOVE:
        touch_move(x, y);
        invalidate();
        break;
    case MotionEvent.ACTION_UP:
        touch_up();
        invalidate();
        break;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)

我正在获取坐标(200,300),是否有任何方法可以获取百分比为10%,20%的坐标,否则我们必须按语法进行计算。

Vir*_*ker 5

使用此代码获取设备的高度和宽度,并将其保存为变量,如下所示

DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int width = displaymetrics.widthPixels;
Run Code Online (Sandbox Code Playgroud)

得到X和Y后,使用下面提到的函数获取百分比

int percentageX= (int)((x*100)/width)
int percentageY= (int)((y*100)/height)
Run Code Online (Sandbox Code Playgroud)