나는 아직도이 문제에 관해 문제가 있습니다.게임용 크기가 다른 화면 - 안드로이드
기본적으로 캔버스를 사용하여 게임의 이미지를 그릴 때 픽셀 값을 하드 코딩하고 있습니다.
분명히 한 화면의 픽셀 값이 다른 화면에서 제대로 실행되지 않으므로이 게임을 모든 화면 크기에 적합하게 만드는 프로세스에 대해 어떻게 생각합니까? 사전에
덕분에
벤
나는 아직도이 문제에 관해 문제가 있습니다.게임용 크기가 다른 화면 - 안드로이드
기본적으로 캔버스를 사용하여 게임의 이미지를 그릴 때 픽셀 값을 하드 코딩하고 있습니다.
분명히 한 화면의 픽셀 값이 다른 화면에서 제대로 실행되지 않으므로이 게임을 모든 화면 크기에 적합하게 만드는 프로세스에 대해 어떻게 생각합니까? 사전에
덕분에
벤
왜 픽셀 값을 필요합니까? dp가 아닌 px 값을 사용하십시오 !!
final float scale = getContext().getResources().getDisplayMetrics().density;
int px = (int) (dp * scale + 0.5f);
DP 밀도 독립형 픽셀 - 화면 물리적 밀도에 기반한 추상적 단위. 이 단위는 160dpi (인치당 도트 수) 화면과 관련이 있으므로 화면 밀도가 이 아니어도 160dp는 항상 1 인치입니다. dp-to-pixel의 비율은 밀도가 화면 일 때 변경되지만 반드시 비율은 아닙니다. 레이아웃에서 뷰 치수를 지정할 때이 단위를 단위로 사용해야하므로 UI 은 다른 화면에서 동일한 실제 크기로 렌더링되도록 올바르게 축척됩니다. ("dp"가 "sp"와 더에도 불구하고, 컴파일러는 "딥"와 "DP"모두 받아들입니다.)
캔버스로 그리는 방법은 무엇입니까? –
화면 크기를 얻기 위해 다음을 사용할 수 있어야합니다 :
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
그럼 당신이 맞는 볼 무엇을 결정 - 캔버스 화면의 일부인 경우 등, 큰 입술에 직접 그릴에 맞게
을 원래 해상도를 스트레칭 추적의 상대적인 위치를 왼쪽 상단에 놓고 그에 따라 위치/크기를 조정합니다.
http://stackoverflow.com/questions/7061258/multiple-screen-resolutions-aspect-ratios-games – Phil