나는 SurfaceView 클래스를 기반으로 안드로이드 용 게임을 개발 중입니다. 현재 나는 다른 화면 크기의보기를 최적화하려고 노력하고 있습니다.캔버스 비트 맵 드로잉 및 화면 밀도
문제 1 : 내 res 폴더에 PNG 파일이 있고 Canvas.drawBitmap을 사용하여 그립니다. 이 기사 (http://developer.android.com/guide/practices/screens_support.html)를 읽은 후에, 화면이 커지면 안드로이드가 비트 맵의 크기를 조정한다고 생각했습니다. 불행히도 나는 앱에서 태블릿을 실행하거나 전화로 시작할 때 스케일링 (또는 변경)을 인식하지 못했습니다. 그러면 어떻게됩니까? 사용 가능한 공간을 계산하고 원본 및 대상 Rectangle을 사용하여 비트 맵을 그리는 멋진 전략을 생각해 내야합니까? 누군가가 모범 사례를 가지고 있거나 캔버스에 비트 맵을 그리는 방법을 알면 좋을 것입니다. 나는 이미 픽셀 < -> 딥 변환 주제를 읽었지만 내 애플 리케이션에서 그 "솔루션"을 어떻게 사용하는지 모르겠다. 그래서 어떤 도움을 주셔서 감사합니다 ...
문제 2 : 내 res 폴더에 3 PNGs 있습니다. 1 개의 ldpi, 1 개의 mdpi 및 1 개의 hdpi. Ldpi 이미지는 50px * 50px, mdpi는 75px * 75px, hdpi는 100px * 100px입니다. 에뮬레이터 (800 * 480)에서 앱을로드 할 때 100 * 100 PNG를 사용합니다. Acer Iconia 탭에서 앱을로드하면 75 * 75 이미지가 사용됩니다. 나는 hdpi가 큰 스크린 (= 탭)을위한 것이고 mdpi 또는 ldpi는 에뮬레이터 스크린을 위해 사용될 것이라고 생각했다. 적어도 나는 안드로이드가 탭에 또한 hdpi에 이미지를 사용하는 것이라고 생각하지만 난이 놀라게있어 ...뿐만 아니라 많은
... 4 긴 텍스트, 그냥 명확하게하려고 죄송합니다
감사이에 대한 모든 외식cya EffDee
의견을 보내 주셔서 감사합니다. 밀도와 함께 노력했지만 운이 없었어요 ... 난 아직도 조금 혼란 스럽다 ... 너비 (= w)와 높이 (= h)로 비트 맵을 얻었고 내 프로토 타입 - 비트와 같은 비트 맵을 그리는 대신으로 점 10,10으로 이동합니다. drawBitmap (myBitmap, 10, 10, null) ' 'doBymap (myBitmap, wholeBitmapRect, new Rect (10, 10, w * densityFactor, h * densityFactor) , null) ' 이것은 나를 미치게합니다! dpi 값으로 삭제하기위한 thx ... 이제 의미가 있습니다;) – Effdee
이 게시물은 도움이 될 수 있습니다 : http://stackoverflow.com/questions/5014882/drawing-a-bitmap-on- a-canvas-got-scaled/5017017 # 5017017 – Thomas