Java Android:getHolder().setFixedSize(19201080)导致屏幕分辨率问题
我正在开发一个游戏。我希望我的屏幕始终为1920x1080Java Android:getHolder().setFixedSize(19201080)导致屏幕分辨率问题,java,android,canvas,resolution,Java,Android,Canvas,Resolution,我正在开发一个游戏。我希望我的屏幕始终为1920x1080 getHolder().setFixedSize(1920,1080); 我的SurfaceView上的setFixedSize实现了这一点。然而,这也产生了一个问题:屏幕仍然是WQHD res,而不是FHD。这会导致鼠标的位置比画布的视觉尺寸更大,因此单击按钮不再有效,除非我按按钮的实际位置以较小的分辨率 有没有办法将Android的分辨率设置为1920x1080?也许把布局设置成那样?我还试着让我的画布等同于一个正确尺寸的位图,但
getHolder().setFixedSize(1920,1080);
我的SurfaceView上的setFixedSize实现了这一点。然而,这也产生了一个问题:屏幕仍然是WQHD res,而不是FHD。这会导致鼠标的位置比画布的视觉尺寸更大,因此单击按钮不再有效,除非我按按钮的实际位置以较小的分辨率
有没有办法将Android的分辨率设置为1920x1080?也许把布局设置成那样?我还试着让我的画布等同于一个正确尺寸的位图,但这似乎根本没有改变任何东西
Bitmap bitmap = Bitmap.createBitmap(10,100,null);
Canvas c = new Canvas(bitmap);
解决这个问题的另一种方法可能是从大屏幕到小屏幕计算相应的鼠标单击位置,我想,但这似乎是次优解决方案。以下是解决这个问题的方法
public static float normalize(float value, float min, float max) {
return Math.abs((value - min) / (max - min));
}
public boolean onTouchEvent(MotionEvent event) {
int differenceInWidth = actualScreenwidth - screenwidth; //2560-1920
float xPercent = normalize(event.getX(),0,actualScreenwidth);
Log.d("mouse_P_xPercent", Float.toString(xPercent));
float yPercent = normalize(event.getY(),0,actualScreenheight);
Log.d("mouse_P_yPercent", Float.toString(yPercent));
mouseCurrentPositionX = (int) (screenwidth*xPercent);
mouseCurrentPositionY = (int) (screenheight*xPercent);